MongoDBで、特定のパラメーターを満たすサブドキュメントの値に基づいてドキュメントを検索したいと思います。具体的には、次のような構造のドキュメントがあります。
{
name: "test",
data: [{
name: "test1",
start: 0,
end: 2
},
{
name: "test2",
start: 15
end: 18
}]
}
データサブドキュメントの開始時間が5未満で、同じサブドキュメントの終了時間が5より大きい場合にのみ、ドキュメントを返すようにMongoDBに指示するにはどうすればよいですか?現在、私がそうするなら
db.foo.findOne({
'data.start': { $lte: 5 },
'data.end': { $gte: 5 }
})
5が0より大きく18より小さいため、常にドキュメントが返されます。5(または任意の値)が0より大きく2より小さいか、15より大きく18より小さい場合にのみ、ドキュメントを返すようにMongoDBに指示するにはどうすればよいですか。 ?