JSON 的 mongoengine 批量更新字段

mongoengine bulk update fields with JSON

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

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

感谢您的回答!

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. 一次更新多个文档。

请记住这是一个指南,您必须稍微修改上面的代码。