来自mongodb记录的匹配元素

时间:2016-01-29 06:04:15

标签: mongodb

假设我的藏品中有以下文件

{  
   "_id":ObjectId("562e7c594c12942f08fe4192"),
   "tags" : [ 
        {
            "tagName" : "fun",
            "created" : ISODate("2016-01-22T06:13:56.510Z")
        }, 
        {
            "tagName" : "cool",
            "created" : ISODate("2016-01-22T06:13:56.509Z")
        }, 
        {
            "tagName" : "good",
            "created" : ISODate("2016-01-22T06:13:56.509Z")
        }
    ]
},
{  
   "_id":ObjectId("562e7c594c12942f08fe4193"),
   "tags" : [ 
        {
            "tagName" : "super",
            "created" : ISODate("2016-01-22T06:13:56.509Z")
        }, 
        {
            "tagName" : "fun",
            "created" : ISODate("2016-01-22T06:13:56.509Z")
        }
    ]
}

我想搜索相关标签,并且只想显示标签数组。

如何查询以获取标签名称列表?

1 个答案:

答案 0 :(得分:1)

要仅查询MongoDB中的特定字段,可以将find方法与projection参数一起使用: https://docs.mongodb.org/manual/reference/method/db.collection.find/

db.test.find({}, {"tags.tagName":1,"_id":0}).pretty()
{
    "tags" : [
        {
            "tagName" : "fun"
        },
        {
            "tagName" : "cool"
        },
        {
            "tagName" : "good"
        }
    ]
}

第一个参数为空{},因为您没有任何查询,第二个参数是您的投影。使用嵌入式文档,您必须使用点符号"tags.tagName""_id":0不显示_id字段。