Используя агрегацию запросов, я хочу создать новый массив с помощью фильтра другого массива, чтобы отфильтрованный результат выполнялся в определенном поле предварительного массива.
В этом случае я хочу фильтровать по полю " fieldName ".
Я всегда буду хотеть отфильтровать последнее возникновение
пример:
У меня есть один документ:
{
"fullyQualifiedName" : "MongoDB",
"items" : [
{
"fieldName" : "_id",
"fieldCount" : 7,
"confidence_level" : 1,
"fieldClassifications" : [
"LineageGuid"
],
},
{
"fieldName" : "_id",
"fieldCount" : 7,
"fieldClassifications" : [
{
"classificationName" : "LineageGuid",
}
]
},
{
"fieldName" : "details",
"fieldCount" : 7,
},
{
"fieldName" : "state",
"fieldCount" : 7,
}
]
}
Я хочу создать новый массив, например:
"items" : [
{
"fieldName" : "_id",
"fieldCount" : 7,
"confidence_level" : 1,
"fieldClassifications" : [
"LineageGuid"
],
},
{
"fieldName" : "details",
"fieldCount" : 7,
},
{
"fieldName" : "state",
"fieldCount" : 7,
}
]
Простое решение - снова $ unwind и $ group , но я не могу этого сделать из-за проблем с производительностью.
Я использую MongoDB 3.4