我是MongoDB的新手。我正在尝试从集合中的文档中提取字段的各种方法。 在下面的JSON文档中,我发现很难根据我的需要提取它
{
"_id":1,
"dependencies":{
"a":[
"hello",
"hi"
],
"b":[
"Hmmm"
],
"c":[
"Vanilla",
"Strawberry",
"Pista"
],
"d":[
"Carrot",
"Cauliflower",
"Potato",
"Cabbage"
]
},
"productid":"25",
"date":"Thu Jul 30 11:36:49 PDT 2015"
}
我需要显示以下输出:
c:[
"Vanilla",
"Strawberry",
"Pista"
]
任何人都可以帮我解决一下吗?
答案 0 :(得分:1)
MongoDB Aggregation进行救援以获得您正在寻找的结果:
$Project - >将仅包含指定字段的文档传递到管道中的下一个阶段。指定的字段可以是输入文档或新计算字段中的现有字段。
db.collection.aggregate( [
{ $project :
{ c: "$dependencies.c", _id : 0 }
}
]).pretty();
根据您需要的输出,我们只需要投影(显示)字段" dependencies.c" ,所以我们正在创造一个新的领域" c"并指定" dependencies.c"的价值。进入它。
同样通过defalut" _id"字段将随结果一起显示,因为你不需要它,所以我们通过指定" _id"来抑制_id字段。 :< 0或false>,以便它不会在输出中显示_id字段。
以上查询将获取结果如下:
"c" : [
"Vanilla",
"Strawberry",
"Pista"
]