В моей коллекции все мои документы имеют массив tags
:
"tags" : [
{
"name" : "a",
"weight" : NumberInt(32)
},
{
"name" : "b",
"weight" : NumberInt(26)
},
{
"name" : "c",
"weight" : NumberInt(25)
},
...
]
Каждый объект в массиве имеет ключи name
и weight
.Мне нужно удалить ключ weight
, чтобы у меня остался names
в одноуровневом массиве, например ["a", "b", "c"...]
Объяснение, почему мне нужно это сделать:
Внутри моей агрегации я хочу вычислить количество совпадений между массивом x = ["a", "b", "d"]
и любыми тегами, которые есть у каждого документа.
Насколько я понял, внутри$project
Я создаю новую переменную следующим образом:
"$project": {
...
"diff": {
"$size": {
"$setIntersection": [ x, "$tags" } ]
}
},
...
}
Но, конечно, это не работает, так как массив $tags
полон объектов, а не строк.Мне нужно убрать weight
из массива тегов и оставить его как массив names
, как ["a", "b", "c" ...]
, тогда он должен работать.
Как мне поступить так?