Предположим, у меня есть следующий набор данных,
//listings collection
{
"city": New York,
"beds": 2,
"build": concrete
}
{
"city": New York,
"beds": 4,
"build": wood
}
{
"city": New York,
"beds": 3,
"build": asphalt
}
{
"city": New York,
"beds": 1,
"build": concrete
}
Я могу получить количество следующих средних коек с помощью следующего запроса
db.listings.aggregate(
[
{
$match: {
"city": "New York"
}
},
{
$group: {
"_id": null,
"Avg-Beds": {
$avg:"$beds
}
}
}
])
Что круто, но то, что я действительно ищу, это что-то вроде
{
"Avg-Beds": 2
"Build" {
"Asphalt" : 1,
"Wood": 1,
"Concrete": 2
}
Итак, я хочу усреднить кровати, но я хочу посчитать вывод поля "build"
одновременно.
Как это достижимо с mongodb?
Еще лучше было бы что-то вроде вывода
"Build": {
"Asphalt": "25%"
}
Что даст процентное значение. Обратите внимание, что у меня нет предопределенного набора "build"
полей вывода.