【发布时间】:2011-01-15 18:38:25
【问题描述】:
我是MongoDB新手,不知道下一个问题如何解决:
我有一个这样的文档集合:
{
"URL": "www.stackoverflow.com",
"TAGS": [
{"NAME": "question", "VOTES": 3},
{"NAME": "answer", "VOTES": 5},
{"NAME": "problem", "VOTES": 2}
]
}
首先,我想要在列表中包含所有标签的所有 Url。 我通过查询解决了这个问题:
db.links.find( { "Tags.Name" : { $all: ["question","answers"] } } );
但是这个查询返回整个正确的文档,只包含我要求的标签的正确文档。
我要找的结果是:
{
"URL": "www.stackoverflow.com",
"TAGS": [{"NAME": "question", "VOTES": 3},
{"NAME": "answer", "VOTES": 5}]
}
而不是:
{
"URL": "www.stackoverflow.com",
"TAGS": [{"NAME": "question", "VOTES": 3},
{"NAME": "answer", "VOTES": 5},
{"NAME": "problem", "VOTES": 2}]
}
因为我只要求提供标签 ["question","answers"]。
我想过使用 MapReduce 或解析结果集,但我不知道这是否是解决问题的正确方法。也许有一个内置函数可以更有效地解决它。
谢谢!
【问题讨论】: