2013-10-30 219 views
2

我一直在阅读旧的答案,试图找到一个解决方案 - 但我没有成功。MongoDB:查询嵌套数组

我有了一个嵌套的数组如下文档中的一个字段:

[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"]}}}} 

如果我改变从$查询在$所有它不返回任何东西。

任何帮助,将不胜感激。

回答

4

试试这个。使用$in$all的查询不完全相同。

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

Here's an example

+0

那这样做把戏。谢谢。 – user1163278