У меня есть запрос структуры агрегации, который суммирует определенные данные документа в поисковый набор.К сожалению, я не могу предоставить данные, поскольку они связаны с компанией.Вот запрос и фрагмент данных из последних этапов конвейера:
...
{ $group: { _id: "$SectionId", "Questions": { $addToSet: "$Questions" } } },
{ $unwind: "$Questions" },
, который возвращает такие данные: Обратите внимание, что _id
не является уникальным.
{
"_id" : "Tonometry",
"Questions" : {
"MappingId" : "Exophoria",
"PositiveLabel" : "Positive",
"NegativeLabel" : "Negative"
}
},
{
"_id" : "Tonometry",
"Questions" : {
"MappingId" : "Heterophoria",
"PositiveLabel" : "Positive",
"NegativeLabel" : "Negative"
}
},
Следующий этап в конвейере:
{
$project: {
"_id": 1,
"id": ObjectId(),
"SectionId": "$_id",
"MappingId": "$Questions.MappingId",
"PositiveLabel": "$Questions.PositiveLabel",
"NegativeLabel": "$Questions.NegativeLabel",
}
},
, который выдает:
{
"_id" : "Tonometry",
"id" : ObjectId("5d1cf66cf526f23524f865c6"),
"SectionId" : "Tonometry",
"MappingId" : "Exophoria",
"PositiveLabel" : "Positive",
"NegativeLabel" : "Negative"
},
{
"_id" : "Tonometry",
"id" : ObjectId("5d1cf66cf526f23524f865c6"),
"SectionId" : "Tonometry",
"MappingId" : "Heterophoria",
"PositiveLabel" : "Positive",
"NegativeLabel" : "Negative"
},
Я попытался создать новое поле Id
с уникальным ObjectId, но, к сожалению,просто повторно использует один и тот же ObjectId во всех узлах.Это важно, потому что когда я пытаюсь использовать $out
, требуется уникальный _id
.
Как добавить уникальный ObjectId для каждого узла?