Я возвращаю значение JSON из MongoDB после выполнения моего запроса. Проблема в том, что я не хочу возвращать все JSON, связанные с моим возвратом, я пробовал искать документы и не нашел подходящего способа сделать это. Мне было интересно, что, если это возможно, и если да, то каков правильный способ сделать это. Пример: В DB
{
user: "RMS",
OS: "GNU/HURD",
bearded: "yes",
philosophy: {
software: "FOSS",
cryptology: "Necessary"
},
email: {
responds: "Yes",
address: "[email protected]"
},
facebook: {}
}
{
user: "zuckerburg",
os: "OSX",
bearded: "no",
philosophy: {
software: "OSS",
cryptology: "Optional"
},
email: {},
facebook: {
responds: "Sometimes",
address: "https://www.facebook.com/zuck?fref=ts"
}
}
Каким будет правильный способ возврата поля, если он существует для пользователя, но если он не возвращает другое поле. В приведенном выше примере я хотел бы вернуть поле [email][address]
для RMS и поле [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");
}
}
}