首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引入mongoengine

引入mongoengine
EN

Stack Overflow用户
提问于 2012-01-31 20:55:26
回答 1查看 3.2K关注 0票数 3

我有一个ListField(DictField),里面有像这样的东西-

代码语言:javascript
复制
{'user_id': '12345', 'timestamp' : 'datetime-object'}

在mongoengine中,如何从user_id查询的列表中移除元素?例如,我想删除具有特定user_id的条目。我试过以下几种方法-

代码语言:javascript
复制
update_one(pull__notes__user_id = '12345')

这里的notes是集合的名称。

此语句返回1,但不从列表中删除元素。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-31 21:20:56

执行此操作的两种方法:

A)精确匹配元素:

代码语言:javascript
复制
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)匹配元素的一部分。使用positional operator匹配元素并取消其设置。

代码语言:javascript
复制
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)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9079865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档