Recibo un valor JSON de MongoDB después de ejecutar mi consulta. El problema es que no quiero devolver todo el JSON asociado con mi devolución, intenté buscar en los documentos y no encontré una forma adecuada de hacerlo. Me preguntaba qué pasa si es posible y, de ser así, cuál es la forma correcta de hacerlo. Ejemplo: en la base de datos
{
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"
}
}
¿Cuál sería la forma correcta de devolver un campo si existe para un usuario, pero si no devuelve otro campo? Para el ejemplo anterior, me gustaría devolver el [email][address]
campo para RMS y el [facebook][address]
campo para Zuckerburg. Esto es lo que he intentado encontrar si un campo es nulo, pero parece que no funciona.
.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])
con y sinlean()
y con y sinselectPopulatedPaths: false
el modelo, pero siempre me dieron el objeto poblada completa en la respuesta. La documentación dice que se supone que su respuesta es la correcta, pero no puedo hacer que funcione. ¿Alguien tiene el mismo problema?