gpt4 book ai didi

mongodb - Mongo查找不包含给定值的文档(使用$not)

转载 作者:行者123 更新时间:2023-12-02 00:04:15 25 4
gpt4 key购买 nike

我在 MongoDB 中有两个项目:

{'title':'active item',
'tags':[
{'tag':'active'},
{'tag':'anothertag'}
]}
{'title':'completed item',
'tags':[
{'tag':'completed'}
]}

它可以查找标记为已完成的项目:

db.items.find({'tags.tag':'completed'})
RESULT: [<completed item>]

现在,我想选择所有未标记为已完成的项目,所以我尝试了:

db.items.find({$not:{'tags.tag':'completed'}})
DESIRED RESULT: [<active item>]
ACTUAL RESULT: []

但不知何故,这不会返回任何结果。显然我误解了 $not in Mongo,但为什么呢?如何查询以查找标签中不包含给定值的记录?

最佳答案

$not的目标运算符必须是运算符表达式,而不是字段/值对象。

所以 parvin 的答案是最简单的方法,但仅出于学习目的,您可以使用 $not 支持的表达式来实现此目的,例如:

db.items.find({tags: {$not: {$elemMatch: {tag: 'completed'}}}})

db.items.find({'tags.tag': {$not: /completed/}})

关于mongodb - Mongo查找不包含给定值的文档(使用$not),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20803512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com