Mongo查询 - 仅返回内部子键值

时间:2016-06-10 13:23:49

标签: mongodb

我想只返回大于9百万的DOC.AMOUNT的值。问题是我得到了父DOC,因为我只想要孩子AMOUNT:9000000。换句话说,而不是{Key: {Key:Value}}我想要{Key:Value}}

我的查询:

db.acris.find({"DOC. AMOUNT" : {$gt : 9000000}},{"DOC. AMOUNT":1,_id:0}).pretty().limit(5)

以下是我的查询结果:

{ "DOC" : { " AMOUNT" : 9000100 } }
{ "DOC" : { " AMOUNT" : 9001000 } }
{ "DOC" : { " AMOUNT" : 9002135.18 } }
{ "DOC" : { " AMOUNT" : 9002292 } }
{ "DOC" : { " AMOUNT" : 9003572 } }

如何更改查询以便我只获得{" AMOUNT" : value }

1 个答案:

答案 0 :(得分:1)

您可以使用聚合框架的 $project 运算符来重塑您的文档。这将通过 $match 管道进行管道传输,该管道具有查询逻辑和 $limit 步骤,该步骤将传递要投影的前5个文档:

db.acris.aggregate([
    // acts as your query filter, similar to find()
    { "$match": { "DOC. AMOUNT": { "$gt": 9000000 } } }, 

    // similar to limit(5)
    { "$limit": 5 }, 

    // reshape your documents here
    {
        "$project": {
            "_id": 0,
            "AMOUNT": "$DOC. AMOUNT"
        }
    }
])