我有这样的文件:
{
"_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做到这一点?
答案 0 :(得分:0)
您可以通过聚合将它们设置为null。
db.collection.aggregate({
$project: {
status: 1,
myData: {
$cond: [{
$eq: ['$status', 1]
}, '$myData', null]
}
}
})
它不会删除该字段,但会为您节省一些流量。