Ich versuche, ein Feld eine Ebene höher in meiner Filialdokumentabfrage zurückzugeben. Mein Schema ist:Rückgabe Felder eine Ebene nach oben aus Filialdokument Abfrage Mongodb
profile:{
contacts:[{
first_name:'Tom',
last_name:'Smith',
shared:[{
owner_id:'something',
other_data:'something'
}]
},
{
//.... more contacts
}]
}
wenn ich eine Abfrage schreiben einen bestimmten Kontakt zu erhalten, indem Sie etwas in der ‚geteilten‘ Subdokument passend, ich habe Zugriff auf die Felder in der Subdokument.
Mein Problem ist, dass ich nach Kontakten auf der Grundlage einer owner_id im freigegebenen Filialdokument suchen möchte, aber ich möchte die 'first_name' und 'last_name' eine Ebene höher.
Um die Subdokument Abfrage ich folgendes tun würde:
db.profile.find({'contacts.shared':{ower_id:'something},{'first_name':1, 'last_name':1}})
Enthält die Felder in der übergeordneten nicht zurück.
Wie bewegen Sie sich auf eine Ebene, um diese Felder zu bekommen?
Ist "Profil" den Namen eines Feldes in Ihrem Dokument? – styvane
Profil ist das Dokument – cnak2
Wenn "Profil" nicht der Name eines Felds ist, dann sollten Sie entfernen Sie es aus Ihrem Beitrag entfernen, auch in Betracht ziehen, uns das erwartete Ergebnis zu zeigen. – styvane