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

如何选择mongodb中的所有文档并删除字段,mongodb,mongoengine,Mongodb,Mongoengine,假设我在Mongoengine中定义了一个文档: class User(document): username = StringField() password = StringField() login_history = ListField() 我已经用这个“模式”创建了几个用户,现在我想删除login_history字段,并将其更新到所有已创建的用户。在mongo shell中如何做到这一点?如果可能的话,如何使用MongoEngine做到这一点 谢谢大家 只需$unset字

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

class User(document):
  username = StringField()
  password = StringField()
  login_history = ListField()
我已经用这个“模式”创建了几个用户,现在我想删除login_history字段,并将其更新到所有已创建的用户。在mongo shell中如何做到这一点?如果可能的话,如何使用MongoEngine做到这一点


谢谢大家

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

> db.user.update({}, {$unset: {login_history: true}}, {multi: true})
这里需要注意的关键部分是
{multi:true}
选项,如果没有该选项,您将得到一个更新的文档

更新

对于Mongoengine,您具有与关键字参数相同的多选项,请参阅