MongoEngine从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
修饰你的“下面”名单中删除一些元素;在这种情况下,你通过一个价值清单。
Users.objects(username='some_user').update(pull_all__following=['one_string', 'another_string'])
所以这就是为什么。 'pull'将只取一个值,而'pull_al'l取一个'list'或'tuple' – Zion