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