我可以在mongodb中找到像:
db.user.find({ "show": true}, { firstname: 1, lastname: 1, email:1 })
现在我想更具体一点,让人们隐藏他们的电子邮件地址。 所以我想要的是查询“show”:true然后获取firstname:1,lastname:1 AND(email:1 iff show_email:true)
最糟糕的情况我可以获取所有信息并使用地图函数在后端过滤掉它,但我想知道是否有一个很好的查询方式?
答案 0 :(得分:1)
投影对象字段的真实性非常重要,所以你可以这样做:
db.user.find({ "show": true }, { firstname: 1, lastname: 1, email: show_email })
答案 1 :(得分:0)
由于你没有指定任何驱动程序规范,我打赌这个,Mongo Shell
if(show_email){
db.user.find({ "show": true}, { firstname: 1, lastname: 1, email:1 })
}
else{
db.user.find({ "show": true}, { firstname: 1, lastname: 1})
}