mongo shell:只返回嵌套数组的1个元素

时间:2013-10-30 15:31:01

标签: mongodb mongo-shell

我在mongodb上有以下数据:

{
    "name" : "bla",
    "log" : [
        {
            "A" : 1,
            "B" : 10
        },
        {
            "A" : 2,
            "B" : 20
        }
    ]
}

我了解如何从mongoshell中返回A的所有值:

 db.test.find({},{'name':1,'log.A':1})
{ "_id" : ObjectId("52712539c99a2fc6f6088cd4"), "name" : "bla", "log" : [ { "A" : 1 }, { "A" : 2 } ] }

但是如何将A的输出限制为仅第一个元素?这是我扩展的输出:

{ "_id" : ObjectId("52712539c99a2fc6f6088cd4"), "name" : "bla", "log.A" : 1, "log.B":10}

我不介意log.AA,或者输出中只有[ ],只要它始终只有{{1}的一个条目}和A

我该怎么办?

1 个答案:

答案 0 :(得分:2)

您可以使用$slice数组投影运算符来执行此操作:

db.test.find({}, {name: 1, 'log.A':1, log: {$slice: 1}})

输出:

{ "_id" : ObjectId("..."), "name" : "bla", "log" : [  {  "A" : 1 } ] }