-1

我在 mongo db 中有以下 json 结构。

{
"branch": [
    {
    "section": [
        {
            "sub": "edc",
            "time": "one hour",
            "frequency": "3"
        },
        {
            "sub": "bee",
            "time": "two hours",
            "frequency": "4"
        }
    ]
},
{
    "section": [
        {
            "sub": "ss",
            "time": "one hour",
            "frequency": "2"
        },
        {
            "sub": "ms",
            "time": "two hours",
            "frequency": "5"
        }
    ]
}
 ]
}

我想执行一个查询,使它只返回以下键的值

分支.section.sub

查询后我想要输出

edc
bee
ss
ms
4

2 回答 2

1

使用 find 的投影

db.mycollection.find({}, {"branch.section.sub":1})
于 2013-05-14T10:58:55.530 回答
0

同意 RickyA - 但您可能希望从结果中抑制 _id:

此外,如果您只希望输出是字段的值,您可以尝试使用 forEach 函数进行打印——例如:

db.test.find( {}, 
              {"branch.section.sub":1, _id: 0} 
            ).forEach( function (x) { 
                                       for (i = 0; i < x.branch.length; i++) { 
                                           section = x.branch[i].section; 
                                           for (j = 0; j < section.length; j++ ) { 
                                                print( section[j].sub);    
                                           } 
                                       } 
                                     } )
于 2013-05-14T15:20:02.113 回答