$ nin与$ elemMatch不能按预期工作

尼基尔·班达里(Nikhil Bhandari)

我从mongodb的网站上收集了以下BIOS资料

http://docs.mongodb.org/manual/reference/bios-example-collection/

现在,假设我需要找到所有曾获奖的用户,但不在2001年和2011年

我试图给我们$ nin和$ in,但结果却出乎意料

db.bios.count({awards: {$elemMatch:{ year:{ $nin:[2001,2011] } }}});
//returns 7 - not expected

db.bios.count({awards: {$elemMatch:{ year:{ $in:[2001,2011] } }}});
//returns  4 - expected

我想念什么?

香港强尼

您当前的$nin查询正在计算文档中至少一个awards数组元素包含2001和2011以外的年份的文档

使用$ninno$elemMatch来匹配文档,在该文档中任何$nin数组值均不出现在任何元素中。

db.bios.count({'awards.year': {$nin:[2001,2011]}});

但这也将包括没有任何 awards条目的文档因此,要获得至少获得一个奖项(即曾经获得过奖项的用户)的文档的数量,而在2001或2011年都没有获得该奖项的文档,您需要$and使用限定词来确保awards至少包含一个要素:

db.bios.count({$and: [
    {'awards.year': {$nin:[2001,2011]}},
    {'awards.0': {$exists: true}}
]});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mongodb $ elemMatch使用$ ne不能按预期工作

来自分类Dev

MongoDB:$ nin和$ in在$ elemMatch中不能一起工作

来自分类Dev

:not()不能按预期工作

来自分类Dev

:not()不能按预期工作

来自分类Dev

AutoResizeTextView不能按预期工作

来自分类Dev

getElementById不能按预期工作?

来自分类Dev

递归IEnumerable不能按预期工作?

来自分类Dev

jQuery slideDown不能按预期工作

来自分类Dev

递归函数不能按预期工作

来自分类Dev

Javascript RegExp'*'不能按预期工作

来自分类Dev

strtoul()不能按预期工作?

来自分类Dev

sendRedirect()不能按预期工作

来自分类Dev

终于不能按预期工作

来自分类Dev

whenAll()不能按预期工作

来自分类Dev

arraylist不能按预期工作

来自分类Dev

QGridLayout不能按预期工作

来自分类Dev

unset()不能按预期工作

来自分类Dev

onclick不能按预期工作

来自分类Dev

bcrypt nodejs不能按预期工作

来自分类Dev

NavigationManager不能按预期工作?

来自分类Dev

bcrypt nodejs不能按预期工作

来自分类Dev

getElementById不能按预期工作?

来自分类Dev

rsync不能按预期工作

来自分类Dev

jQuery has()不能按预期工作

来自分类Dev

blockUI不能按预期工作

来自分类Dev

seekg()不能按预期工作

来自分类Dev

XmiCasDeserializer不能按预期工作

来自分类Dev

ArrayAdapter不能按预期工作

来自分类Dev

$(“#form”)。submit(); 不能按预期工作