Mam następujący schemat na:Jak pobrać dokument macierzysty na podstawie wartości poddokumentu w Mongoose?
var Child = new mongoose.Schema({
'field': String,
'value': String
});
var Parent = new mongoose.Schema({
'name': String,
'children': [ Child ]
});
Chcę zwrócić Parent
dla których jednym z Child
„s odpowiada następujący obiekt JSON:
{ 'field': 'Family Name', 'value': 'Smith' }
próbowałem to:
Parent.findOne({ 'children': { 'field': 'Family Name', 'value': 'Smith' } }, fn ...)
ale nadal pobiera dane null
.
EDIT:
Testowanie poprzez rozszerzenie powłoki Mongo, dowiedziałem się, że sub-dokumenty Child
mają własne _id
„s. Jeśli dodaję tę wartość do zapytania _id
, pobierze ona dokument parent
. Teraz nie wiem z góry, kim będzie to dziecko id
. A więc: jak mogę go usunąć z zapytania pod-dokumentu? (Innymi słowy, powyższe zapytanie dosłownie wygląda na obiekt JSON z zaledwie dwóch właściwości, podczas gdy podrzędne dokumenty mają trzy)
Moje środowisko jest: node.js, Mongoose, MongoDB
Jeśli masz obiekt podrzędny, możesz wywołać 'child.parent()'. Jeśli nie, musisz odpowiedzieć na to pytanie. – tbeseda
Nie mam obiektu 'child', stąd zapytanie. Ale samo zapytanie nie wydaje się pobierać żadnego "rodzica" ... –