代码:
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
答案 0 :(得分:5)
如果要从列表中删除一个元素,则需要使用pull
修饰符,该修饰符采用单个值而不是列表,因此正确的查询是:
Users.objects(username='some_user').update(pull__following='some_string')
您还可以使用pull_all
修饰符从“关注”列表中删除多个元素;在这种情况下,您传入一个值列表。
Users.objects(username='some_user').update(pull_all__following=['one_string', 'another_string'])