Mongodb 拉入式发动机
我有一个Mongodb 拉入式发动机,mongodb,mongoengine,Mongodb,Mongoengine,我有一个列表字段(DictField),其中包含如下项- {'user_id': '12345', 'timestamp' : 'datetime-object'} 在mongoengine中,如何从用户id查询的列表中删除元素。例如,我想删除具有特定用户id的条目。我尝试了以下操作- update_one(pull__notes__user_id = '12345') 此处notes是集合的名称 此语句返回1,但不会从列表中删除元素。我如何才能做到这一点?有两种方法: A) 完全匹配元素:
列表字段(DictField)
,其中包含如下项-
{'user_id': '12345', 'timestamp' : 'datetime-object'}
在mongoengine中,如何从用户id查询的列表中删除元素。例如,我想删除具有特定用户id的条目。我尝试了以下操作-
update_one(pull__notes__user_id = '12345')
此处notes
是集合的名称
此语句返回
1
,但不会从列表中删除元素。我如何才能做到这一点?有两种方法:
A) 完全匹配元素:
class Simple(Document):
x = ListField()
Simple.drop_collection()
Simple(x=[{'hello': 'world'}, {'mongo': 'db'}]).save()
// Pull the dict
Simple.objects.update_one(pull__x={'mongo': 'db'})
B) 匹配元素的一部分。
使用来匹配元素并将其取消设置
class Simple(Document):
x = ListField()
Simple.drop_collection()
Simple(x=[{'hello': 'world'}, {'mongo': 'db'}]).save()
// Set to None
Simple.objects.update_one(unset__x__S__mongo='db')
// Pull None
Simple.objects.update_one(pull__x=None)
我不能使用第一个选项。第二个备选方案给了我以下错误-AttributeError:“BaseField”对象没有属性“lookup\u member”您能提供您的模式,然后我应该能够进行测试:)还有什么版本的mongoengine?