0

我想知道是否有人在 MongoDB 中遇到过这个问题。

我正在尝试在另一个数组中搜索一个数组$elemMatch,然后查看该文档中的嵌套值是否在我提供的值数组中。

下面有一个简单的例子:

db.p.insert({v: [{o: [{s: {e: ["M"] }} ]} ]});
db.p.findOne({"v.o": {"$all": [{"$elemMatch": {"s.e": {"$in": ["M"]}}}]}});
null

请注意,该$all语句的原因是我希望能够匹配几个不同的字段,其中每个字段不一定存在于数组中的文档上。

4

1 回答 1

0

$all用于将数组属性与离散值列表进行匹配,而不是使用诸如 . 等运算符的条件列表进行匹配$elemMatch。如果您删除$all它,它的工作原理:

db.p.findOne({"v.o": { $elemMatch: { "s.e": {"$in": ["M"]}}}});
于 2012-09-20T21:11:55.713 回答