mongodb返回字段可选
我有这样一份文件:mongodb返回字段可选,mongodb,Mongodb,我有这样一份文件: { "_id" : "abcdefg", "status" : 1, "myData": { "a": "a", "b": "b" } }, { "_id" : "zxcvbnm", "status" : 3, "myData": { "a": "a", "b": "b" } } 如果“状态”==3,字段“myData”将返回,如 myCollection.find({}, {"status": 1, "myD
{
"_id" : "abcdefg",
"status" : 1,
"myData": {
"a": "a",
"b": "b"
}
},
{
"_id" : "zxcvbnm",
"status" : 3,
"myData": {
"a": "a",
"b": "b"
}
}
如果“状态”==3,字段“myData”将返回,如
myCollection.find({}, {"status": 1, "myData": 1})
如果“状态”!==3,字段“myData”将不会返回,如:
myCollection.find({}, {"status": 1, "myData": 0})
在mongodb中如何实现这一点?您可以使用聚合将它们设置为null
db.collection.aggregate({
$project: {
status: 1,
myData: {
$cond: [{
$eq: ['$status', 1]
}, '$myData', null]
}
}
})
它不会删除该字段,但会为您节省一些流量。您确实不能。您唯一可以做出这样一个断言的方法就是使用
mapReduce
,这样做太过分了。最好的方法是将您的条件应用于每个返回的结果,并从游标修改每个返回的文档。