从 Mongoose 返回带有 .populate() 的某些字段
2022-08-30 05:33:21
运行查询后,我从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 的字段和 Zuckerburg 的字段。这就是我试图找到的字段是否为空,但它似乎不起作用。[email][address]
[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");
}
}
}