У меня есть коллекция MongoDB
, как показано ниже.И я хочу получить min\max\avg\count
поля xxx
во всех документах, которые $match: { "Parsed.FileId": "421462559", "Parsed.MessageId": "123" }
Обратите внимание, что Fields
каждого документа содержит только одно поле с SchemaName = xxx
Возможно ли это с помощью MongoDB aggregation
(или другой функции) и как?
{
"_id" : NumberLong(409),
"Parsed" : {
"FileId" : "421462559",
"MessageId": "123",
"Fields" : [
{
"SchemaName" : "xxx",
"Type" : 0,
"Value" : 6
},
{
"SchemaName" : "yyy",
"Type" : 0,
"Value" : 5
}
]
}
},
{
"_id" : NumberLong(510),
"Parsed" : {
"FileId" : "421462559",
"MessageId": "123",
"Fields" : [
{
"SchemaName" : "xxx",
"Type" : 0,
"Value" : 10
},
{
"SchemaName" : "yyy",
"Type" : 0,
"Value" : 20
}
]
}
}
Например, для коллекции выше, я ожидаю получить результат для поля xxx
как:
{
count: 2,
min: 6,
max: 10,
avg: 8
}