代码:
class Users(db.Document, UserMixin):
first_name = db.StringField()
last_name = db.StringField()
username = db.StringField(unique=True)
password = db.StringField()
email = db.StringField()
following = db.ListField(db.StringField(), default=[])
role = db.ListField(db.StringField(), default=["user"])
confirmed = db.BooleanField(default=False)
confirmed_on = db.DateTimeField()
所以如果我想从 Users.following
字段中删除某个字符串
Users.objects(username="some_user").update(pull__following=["some_string"])
然后保存?
因为我已经试过了,它不会从 following
listField
最佳答案
如果你想从列表中删除一个元素,你需要使用 pull
修饰符,它采用单个值而不是列表,因为你这样做正确的查询是:
Users.objects(username='some_user').update(pull__following='some_string')
您还可以使用 pull_all
修饰符从“following”列表中删除多个元素;在本例中,您传递了一个值列表。
Users.objects(username='some_user').update(pull_all__following=['one_string', 'another_string'])
关于mongodb - MongoEngine 从 ListField 中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34402579/