我在mongoDb中有一个文件,格式如下所示,我只想打印标签键的值。我尝试了几种方法,但没有一种方法可以使用
{
id = "my_id1"
tags:
{
'tag1':76,
'tag2':77,
'tag3':78
},
category: "movie",
},
{
id = "my_id2"
tags:
{
'tag1':76,
'tag2':77,
'tag3':78
},
category: "tv",
},
{
id = "my_id3"
tags:
{
'tag1':76,
'tag2':77,
'tag3':78
},
category: "movie",
}
所需的输出格式如下所示
76
77
78
76
77
78
76
77
78
我正在尝试的代码也将返回给我所有其他值。
答案 0 :(得分:1)
如果您的架构如下
{
"_id" : ObjectId("581707cddb3c8c85a6745d20"),
"id" : "my_id1",
"tags" : {
"tag1" : 76,
"tag2" : 77,
"tag3" : 78
},
"category" : "movie"
}
{
"_id" : ObjectId("581707f7db3c8c85a6745d21"),
"id" : "my_id2",
"tags" : {
"tag1" : 76,
"tag2" : 77,
"tag3" : 78
},
"category" : "tv"
}
{
"_id" : ObjectId("58170a23db3c8c85a6745d22"),
"id" : "my_id3",
"tags" : {
"tag1" : 76,
"tag2" : 77,
"tag3" : 78
},
"category" : "movie"
}
db.collection.find().count() ---> 3
然后可以使用以下查询
检索标签值db.collection.aggregate([{$project:{"_id":false,"tags.tag1":1, "tags.tag2":1, "tags.tag3":1}}])
此查询将产生如下所示的结果
{ "tags" : { "tag1" : 76, "tag2" : 77, "tag3" : 78 } }
{ "tags" : { "tag1" : 76, "tag2" : 77, "tag3" : 78 } }
{ "tags" : { "tag1" : 76, "tag2" : 77, "tag3" : 78 } }
如果我用来获得此结果的架构与您的架构不匹配,那么您需要修改查询以适合您的架构。