Вот моя коллекция
{
"_id" : ObjectId("5c225f9a66d39d55c036fa66"),
"name" : "Sherlock",
"mobile" : "999999",
"adress" : [
{
"street" : "221b baker street",
"city" : "london"
},
{
"street" : "ben street",
"city" : "london"
}
],
"tags" : [
"Detective",
"Magician",
"Avenger"
]
}
Теперь я хочу получить первое или второе значение внутри массива адресов.для этого я использую эту команду.
> db.agents.findOne({"name" : "Sherlock"},{"adress" : 1})
, но вместо того, чтобы давать один результат, он дает весь массив, как
{
"_id" : ObjectId("5c225f9a66d39d55c036fa66"),
"adress" : [
{
"street" : "221b baker street",
"city" : "london"
},
{
"street" : "ben street",
"city" : "london"
}
]
}
Это можно сделать, сравнив значение массива как
db.agents.find({"adress.street": "ben street"}, {_id: 0, 'adress.$': 1});
Но я не хочу сравнивать только для печати индексов массива.Как я могу получить единый результат?Любая помощь приветствуется ..