mongodb可选地返回字段

时间:2016-04-01 05:00:35

标签: mongodb

我有这样的文件:

{
  "_id" : "abcdefg",
  "status" : 1,
  "myData": {
    "a": "a",
    "b": "b"
  }
},
{
  "_id" : "zxcvbnm",
  "status" : 3,
  "myData": {
    "a": "a",
    "b": "b"
  }
}

如果“status”=== 3,字段“myData”将返回,如

myCollection.find({}, {"status": 1, "myData": 1})

如果“status”!== 3,字段“myData”将不会返回,如:

myCollection.find({}, {"status": 1, "myData": 0})

我怎么能在mongodb做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以通过聚合将它们设置为null。

db.collection.aggregate({
    $project: {
        status: 1,
        myData: {
            $cond: [{
                $eq: ['$status', 1]
            }, '$myData', null]
        }
    }
})

它不会删除该字段,但会为您节省一些流量。