0
У меня есть структура объекта, как показано нижеКак запросить массив объектов в MongoDB
{
"_id" : ObjectId("55d164f1c8f2c53a82535b9a"),
"plant_name" : "TOTAL",
"installed_capacity" : 3473,
"wind_data" : [
{
"date" : "16-08-15",
"timestamp" : " 16:27:15",
"generated_capacity" : 617.24,
"frequency" : 50.01
},
{
"date" : "16-08-15",
"timestamp" : " 21:21:15",
"generated_capacity" : 670.25,
"frequency" : 49.94
}, ....]
}
мне нужно подвести итог (по крайней мере извлечение) «generated_capacity» всех объектов под «wind_data» имеющий " дата "равна" 16-08-15 "объекта" TOTAL ". Я пробовал этот вопрос
db.collectionName.aggregate(
{"$unwind":"$wind_data"},
{"$match":{"plant_name":"TOTAL","wind_data.date":"16-08-15"}}
)
Но, этот запрос не работает. Пожалуйста, предложите какой-то способ понять это.
Вы пропускаете закрывающую кавычку, и вы действительно должны также '$ match' первым, как хорошо, но в противном случае это должно работать до этого момента. Что не так? –
Возвращает все поля объекта. Как найти сумму определенного поля внутри массива. Подобно «generate_capacity» внутри массива. – chaitu
добавьте это после соответствия '{" $ group ": {" _ id ":" $ wind_data.date "," generated_capacity_sum ": {" $ sum ":" $ generated_capacity}}} ' – Yogesh