使用Python和PyMongo从所有MongoDB文档中删除属性

Car*_*ine 10 python mongodb pymongo

在我的MongoDB中,存在大量这些文档:

{ "_id" : ObjectId("5341eaae6e59875a9c80fa68"),
  "parent" : {
      "tokeep" : 0,
      "toremove" : 0
  }
}
Run Code Online (Sandbox Code Playgroud)

我想删除parent.toremove每一个属性.

使用MongoDB shell,我可以使用以下方法完成此操作:

db.collection.update({},{$unset: {'parent.toremove':1}},false,true)
Run Code Online (Sandbox Code Playgroud)

但是我如何在Python中执行此操作?

app = Flask(__name__)
mongo = PyMongo(app)
mongo.db.collection.update({},{$unset: {'parent.toremove':1}},false,true)
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

  File "myprogram.py", line 46
mongo.db.collection.update({},{$unset: {'parent.toremove':1}},false,true)
                               ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

Joh*_*yHK 20

放置引号$unset,命名您包含的参数(multi)并使用正确的语法为true:

mongo.db.collection.update({}, {'$unset': {'parent.toremove':1}}, multi=True)
Run Code Online (Sandbox Code Playgroud)