【发布时间】:2015-09-10 08:01:59
【问题描述】:
我的文档如下所示:
{
"contents": [
{
"translationId": "MENU",
},
{
"translationId": "PAGETITLE"
}
],
"slides": [
{
"translationId": "SLIDE1",
"imageUrl": "assets/img/room/1.jpg",
"desc": {
"translationId": "DESC",
}
},
{
"translationId": "SLIDE2",
"imageUrl": "assets/img/aa/2.jpg"
}
]}
无论数据位于哪个子文档中,我都希望根据 translationId 进行聚合。我当前的查询如下所示,它没有给我预期的结果。
db.cursor.find({"contents.translationId": { $exists: true }},
{"contents.translationId":1,'slides.translationId':1,"slides.desc.translationId":1,'_id':0})
我希望得到如下结果。有没有直接从 mongodb 查询中检索这样一个结果的好方法?
[
{
"translationId": "MENU"
},
{
"translationId": "PAGETITLE"
},
{
"translationId": "SLIDE1"
},
{
"translationId": "SLIDE2"
},
{
"translationId": "DESC"
}
]
此外,我可能不知道 translationId 可能存在于哪个元素中。在这种情况下,它位于内容、幻灯片和 slides.desc 中,但它也可能位于其他一些元素下。有可能吗?
谢谢!
【问题讨论】:
标签: mongodb mapreduce mongodb-query aggregation-framework