使用JSON的mongoengine批量更新字段

时间:2015-05-08 19:26:52

标签: mongodb pymongo mongoengine

我是Mongodb和Mongoengine的新手。我想知道是否有办法用json脚本批量更新MongoDB字段,例如:

jsonData = {'name': 'Stak', 'password':'oVeRfLoW'}
User.objects.get(username='u_name').update(jsonData)

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

Mongodb的内置更新功能db.collection.update()可以自定义,可以一次更新多个文档,而且不需要事先获取任何内容。

您可以像这样使用它:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

所以在这种情况下:

db.collection.update(
   {username:'u_name'}, //1
   {$set:jsonData}, // 2
   {
     multi: true, // 3
   }
)

  1. 查询搜索具有
  2. 的文档
  3. $ set非常重要!如果您不使用$ set,则整个文档将被删除并更新为仅包含新值的文档。 (它将删除所有其他字段)
  4. 一次更新多个文档。
  5. 请注意,这是一个指南,您必须稍微修改上述代码。