MongoDB: Filialdokument in Array Matching-Parametern suchen
In MongoDB möchte ich ein Dokument finden, das auf den Werten eines Filialdokuments basiert, das bestimmte Parameter erfüllt. Insbesondere habe ich ein Dokument wie folgt aufgebaut:
{
name: "test",
data: [{
name: "test1",
start: 0,
end: 2
},
{
name: "test2",
start: 15
end: 18
}]
}
Wie kann ich MongoDB anweisen, mein Dokument nur dann zurückzugeben, wenn die Startzeit für ein Daten-Filialdokument kleiner als 5 und die Endzeit für dasselbe Filialdokument größer als 5 ist? Derzeit, wenn ich es tue
db.foo.findOne({
'data.start': { $lte: 5 },
'data.end': { $gte: 5 }
})
Es gibt mein Dokument immer zurück, weil 5 größer als 0 und kleiner als 18 ist. Wie kann ich MongoDB anweisen, mein Dokument nur dann zurückzugeben, wenn 5 (oder welcher Wert auch immer) größer als 0 und kleiner als 2 oder größer als 15 und kleiner als 18 ist ?