Ich erhalte einen JSON-Wert von MongoDB, nachdem ich meine Abfrage ausgeführt habe. Das Problem ist, dass ich nicht alle mit meiner Rückgabe verbundenen JSON-Daten zurückgeben möchte. Ich habe versucht, die Dokumente zu durchsuchen, und keinen geeigneten Weg gefunden, dies zu tun. Ich habe mich gefragt, was ist, wenn es möglich ist, und wenn ja, wie ist das richtig? Beispiel: In der DB
{
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"
}
}
Was wäre der richtige Weg, um ein Feld zurückzugeben, wenn es für einen Benutzer existiert, aber wenn es kein anderes Feld zurückgibt. Für das obige Beispiel möchte ich das [email][address]
Feld für RMS und das [facebook][address]
Feld für Zuckerburg zurückgeben. Dies ist, was ich versucht habe zu finden, wenn ein Feld null ist, aber es scheint nicht zu funktionieren.
.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");
}
}
}