我在运行查询后从MongoDB得到了一个JSON值。问题是我不想返回与我的返回相关联的所有JSON,我尝试搜索文档,但没有找到适当的方法来做到这一点。我在想是否可能实现此目标,如果可能的话,正确的操作方式是什么。例如:在数据库中。
{
user: "RMS",
OS: "GNU/HURD",
bearded: "yes",
philosophy: {
software: "FOSS",
cryptology: "Necessary"
},
email: {
responds: "Yes",
address: "rms@gnu.org"
},
facebook: {}
}
{
user: "zuckerburg",
os: "OSX",
bearded: "no",
philosophy: {
software: "OSS",
cryptology: "Optional"
},
email: {},
facebook: {
responds: "Sometimes",
address: "https://www.facebook.com/zuck?fref=ts"
}
}
如果用户存在某个字段,则返回该字段的正确方式是什么,但如果不存在该字段,则返回另一个字段。 对于上面的示例,我想返回RMS的“[email] [address]”字段,以及Zuckerburg的“[facebook] [address]”字段。 这是我尝试查找字段是否为空,但似乎没有起作用。 .populate('user' , `email.address`)
.exec(function (err, subscription){
var key;
var f;
for(key in subscription){
if(subscription[key].facebook != null ){
console.log("user has fb");
}
}
}
.populate('model', 'field')
、.populate('model', { field: 1})
、.populate('model', [field])
,以及在模型上使用和不使用lean()
和selectPopulatedPaths: false
,但我总是在响应中得到完整的填充对象。文档说你的答案应该是正确的,但我无法使其工作。有人遇到同样的问题吗? - mel-mouk