考虑以下文档:
{
"_id" : "ID_01",
"code" : ["001", "002", "003"],
"Others" : "544554"
}
我经历了这个MongoDB doc for elemmatch-query & elemmatch-projection ,但无法弄清楚如何将其用于上述文档。
谁能告诉我如何使用 $elemMatch
作为字段代码?
最佳答案
在这种情况下,您需要使用 $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"] } } )
关于mongodb - 如何在第一级数组上使用 $elemMatch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141576/