Після запуску запиту я отримую значення JSON від MongoDB. Проблема в тому, що я не хочу повертати всі 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"
}
}
Яким буде правильний спосіб повернення поля, якщо воно існує для користувача, але якщо воно не повертає іншого поля. Для прикладу вище я хотів би повернути [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");
}
}
}