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