考虑以下文件:
{
"_id" : "ID_01",
"code" : ["001", "002", "003"],
"Others" : "544554"
}
我经历了MongoDB doc for elemmatch-query& elemmatch-projection,但无法弄清楚如何在上述文档中使用相同内容。
有人能告诉我如何将$elemMatch
用于字段代码?
答案 0 :(得分:9)
在这种情况下,您需要使用$in
运算符而不是$elemMatch
,因为$in
可用于搜索特定字段内的值(或多个值)。 $ in需要将值列表作为数组传递。此外,对于您的情况,它将找到单个值,或通过搜索值数组。返回整个匹配文档。
例如,您可以像这样使用它:
db.mycodes.find( { code: { $in: ["001"] } } )
可以简化为:
db.mycodes.find({ code: "001" })
由于MongoDB会在数组中查找上面的单个匹配项("001"
)。
或者,如果您要搜索"001"
或"002"
:
db.mycodes.find( { code: { $in: ["001", "002"] } } )
答案 1 :(得分:2)
如果您只想将所有文档与包含给定值的数组匹配,则只需指定对该数组的引用的值,例如
db.mycodes.find( { code: '001' } )
因此会返回包含'001'
数组
code
的所有文档