Используя точку (.)
, вы можете получить ожидаемый результат.
db.collection.find({"Values.Value2.Value2_1" : 100})
Приведенный выше запрос выберет все документы, в которых массив Values
имеет массив Values2
, а Values2
имеет Values2_1
, значение которого равно 100
Выход:
{
"_id" : ObjectId("5b86bd1172876096c7a9d6cf"),
"Values" : [
{
"Value1" : "Article 1",
"Value2" : [
{
"Value2_1" : 100.0,
"Value2_2" : 200.0
},
{
"Value2_1" : 15.0,
"Value2_2" : 25.0
}
]
}
]
}
И если вы попытаетесь выполнить поиск с помощью _id
, вам не нужно будет использовать
второе условие, потому что по определению _id
всегда уникально.
Этот следующий запрос также покажет тот же результат, что и выше.
db.collection.find({"_id" : ObjectId("5b86bd1172876096c7a9d6cf")})