如何 select mongodb 中的所有文档并删除字段

How to select all documents in a mongodb AND remove a field

假设我在 Mongoengine 中定义了一个文档:

class User(document):
  username = StringField()
  password = StringField()
  login_history = ListField()

我已经用 "schema" 创建了几个用户,现在我想删除 login_history 字段并将其更新到所有已创建的用户。如何在mongoshell中做到这一点?如果可能的话,如何使用 MongoEngine 做到这一点?

谢谢大家!

只是 $unset 字段而不指定匹配条件。所以对于 Mongo Shell,它将是:

> db.user.update({}, {$unset: {login_history: true}}, {multi: true})

这里要注意的关键部分是 {multi: true} 选项,如果没有它,您最终只会更新一个文档。

更新

对于 Mongo引擎,您有与关键字参数相同的多选项,请参阅 documentation