如何在Mongodb Aggregation Framework中将值作为字段进行投影?

时间:2014-04-22 22:50:37

标签: mongodb aggregation-framework

如何在mongodb的字段中投影值。我当前的投影返回结果如下

[
  {
    "_id": "preferred",
    "value": 314
  },
  {
    "_id": "standard",
    "value": 7778
  }
]

但我想把这个结果作为

[
  {
    "preferred": 314
  },
  {
    "standard": 7778
  }
]

我试过

db.collection.aggregate({...},{$project:{"$_id":"$value"}})

但它不起作用。有一些简单的方法吗?谢谢

1 个答案:

答案 0 :(得分:1)

你总是知道你的_id值会是什么吗?如果是这样,这样的事情对我有用。 (另)

db.collection.aggregate({
    $project:{
        preferred:{
            $cond: [ {$eq:["$_id","preferred"]}, "$value", 0 ]
        },
        standard:{
            $cond: [ {$eq:["$_id","standard"]}, "$value", 0 ]
        }
    }
})

我不知道这可能会有多么高效。