从导出的mongo json文件

时间:2015-05-14 11:28:11

标签: mongodb mongoid

我想使用--upsert选项将导出的json文件导入现有集合(同一个),但问题是我只想更新特定字段而不是所有数据。作为一个例子,我有一个名为users的集合,我将其导出到users.json,然后我想将此json文件导入另一个具有相同集合的数据库,但我想要只是为了导入emailusername和&等字段。 avatar,所以我可以保留其他数据,而不做任何更改。我怎么能这样做?您是否有任何想法或快速解决此问题?

3 个答案:

答案 0 :(得分:0)

使用python

import pymongo
import json

conn = pymongo.MongoClient()
collection = conn['db']['collection']

for doc in json.load(open('users.json')):
    new_doc = {k: v for k, v in doc.iteritems() if k in ('email', 'username', 'avatar')}
    collection.update({'_id': doc['_id']}, {'$set': new_doc})

答案 1 :(得分:0)

限制导出的字段可能是更优雅的方法。有--fields flag available in mongoexport

_id

只会导出foobarbazUri imageUri = /* URI goes here */ Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); Imageview iv = (Imageview) findViewById (R.id.my_img_view); iv.setImageBitmap(bitmap);

答案 2 :(得分:0)

这是一个例子。第一个请求导出JSON文件。 第二个请求使用merge选项导入文件。

mongoexport --db mydb --collection mycollection --fields field1,field2 --query "add a query if necessary" > test.json

mongoimport --db mydb --collection mycollection --file test.json --mode merge