MongoEngine 从 ListField 中删除字符串
MongoEngine remove string from ListField
代码:
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'])
代码:
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'])