#mongodb #collections
#mongodb #Коллекции
Вопрос:
Для приведенной ниже выборки мне нужны все названия улиц в массиве адресов. Как мы должны находить значения только определенного элемента? можем ли мы использовать агрегацию
{
"_id" : ObjectId("4c4b1476238d3b4dd5000002"),
"username" : "pbakkum",
"first_name" : "Peter",
"last_name" : "Bakkum",
"age" : 21,
"addresses" : [
{
"name" : "home",
"street" : "588 5th Street",
"city" : "Brooklyn",
"state" : "CA",
"zip" : 11215
},
{
"name" : "work",
"street" : "588 5th Street",
"city" : "Brooklyn",
"state" : "CA",
"zip" : 11215
},
{
}
]
}
{
"_id" : ObjectId("4c4b1476238d3b4dd5000001"),
"username" : "kbanker",
"email" : "kylebanker@gmail.com",
"first_name" : "Kyle",
"last_name" : "Banker",
"hashed_password" : "bd1cfa194c3a603e7186780824b04419",
"addresses" : [
{
"name" : "home",
"street" : "588 5th Street",
"city" : "Brooklyn",
"state" : "NY",
"zip" : 11215
},
{
"name" : "work",
"street" : "1 E. 23rd Street",
"city" : "New York",
"state" : "NY",
"zip" : 10010
}
],
"payment_methods" : [
{
"name" : "VISA",
"last_four" : 2127,
"crypted_number" : "43f6ba1dfda6b8106dc7",
"expiration_date" : ISODate("2016-05-01T07:00:00Z")
}
],
"age" : 151
}
Для приведенной ниже выборки мне нужны все названия улиц в массиве адресов. Как мы должны находить значения только определенного элемента? можем ли мы использовать агрегацию
Любая помощь была бы высоко оценена
Комментарии:
1. Что вы уже пробовали?
Ответ №1:
Вы можете попробовать использовать оператор $map с агрегациейвведите описание ссылки здесь.
db.collection.aggregate([
{
"$project": { "_id": 0, "data": {
"$map": { "input": "$addresses", "as": "add", "in": "$$add.street" } } }
}
])
Комментарии:
1. Большое спасибо Нишу Тайалу. Идеально!
2. Если это работает для вас, не стесняйтесь принять ответ или проголосовать за него. Это помогает другим людям 🙂
3. Не могу этого увидеть. 🙂