2

我一直在这里阅读旧答案,试图找到解决方案 - 但我没有成功。

我在文档中有一个具有嵌套数组的字段,如下所示:

[tags] => Array ( 
       [0] => Array ( [_id] => 5271318ea7d63ba9a25045ad 
                      [name] => photo ) 
       [1] => Array ( [_id] => 526ffafba7d63ba9a25045a9 
                      [name] => beach ) 
       [2] => Array ( [_id] => 5271318ea7d63ba9a25045ac 
                      [name] => landscape ) 
)

我正在寻找在搜索查询中具有所有必需标签 ID 的文档。我有这个查询,但它返回所有具有任何id 的文档。

{"tags":{"$elemMatch":{"_id":{"$in":["5271318ea7d63ba9a25045ad","526ffafba7d63ba9a25045a9"]}}}}

如果我将查询从$in更改为$all它不会返回任何内容。

任何帮助,将不胜感激。

4

1 回答 1

4

尝试这个。使用$in$all不完全一样的查询。

{"tags": { $all: [
    {"$elemMatch": {"_id": "5271318ea7d63ba9a25045ad"}},
    {"$elemMatch": {"_id": "526ffafba7d63ba9a25045a9"}}]
}}

这是一个例子

于 2013-10-30T22:33:52.783 回答