конечном итоге нужно чтобы у всех данных _id был с 1 по порядку
Подскажите как это сделать?
[
{
"aggregate": "events",
"pipeline": [
{
"$project": {
"_id": 1,
"events": 1
}
},
{
"$unwind": "$events"
},
{
"$project": {
"_id": 0,
"aggregate_id": "$_id",
"event_type": "$events.event_type",
"data": "$events.data",
"timestamp": "$events.timestamp",
"aggregate_type": "$events.aggregate_type",
"version": "$events.version",
"metadata": {
"position": "$events.version"
}
}
},
{
"$out": "new_events"
}
],
"cursor": {}
}
]
Если делать сортировку по _id то база данных возвращает документы по времени создания в порядке. Для этого { $sort: {_id: 1} }
По порядке создания с перво создавшегося
Вы говорите про автоинкремент в ид. Встроенного такого функционала нет. Изменить ид на автоинкремент в пайплайне не получится, так же нет для этого механизмов. Вариант только переливка скриптом с подменой ид на который вам нужен. В монге _id может быть любым валидным значением и например объектом сложной структуры.
да я уже сприпт на Go написал, надо было так сразу сделать)
Но факт наличия автоинкремента попахивает, по возможности откажитесь от этого
Обсуждают сегодня