在一个问题的答案中,我发现了一个使用$ elemMatch搜索数组值的有趣解决方案.
如果我们的藏品中有以下文件:
{
foo : [ { bar : "xy", baz : 1 },
{ bar : "a", baz : 10 } ]
},
{
foo : [ { bar : "xy", baz : 5 },
{ bar : "b", baz : 50 } ]
}
Run Code Online (Sandbox Code Playgroud)
以下查询仅匹配第一个文档:
db.test.find({
foo : { "$all" : [ { "$elemMatch" : { bar : "xy", baz : 1} }, { "$elemMatch" : { bar : "a", baz : 10 } } ] }
});
Run Code Online (Sandbox Code Playgroud)
我尝试了几个其他的例子,它确实有效.但$ all运算符的官方文档没有说明如何组合这两个查询.
这是预期的行为还是错误?或者这只是一个问题,文档没有涵盖这个用例?
这是预期的行为.该文档未涵盖此用例,我们正在努力使其更好.但是,很难记录每个可能的查询组合.
| 归档时间: |
|
| 查看次数: |
3714 次 |
| 最近记录: |