Идея состоит в том, чтобы вернуть номер строки в командную строку/конвейер mongodb. Подобно тому, что мы имеем в RDBM.Добавить номер строки в команду/конвейер mongodb
Это должен быть уникальный номер, не имеющий значения, если он точно соответствует строке/номеру.
Для запроса типа:
[ { $match: { "author" : { $ne: 1 } }} , { $limit: 1000000 } ]
Возвращение:
{ "rownum" : 0, "title" : "The Banquet", "author" : "Dante", "copies" : 2 }
{ "rownum" : 1, "title" : "Divine Comedy", "author" : "Dante", "copies" : 1 }
{ "rownum" : 2, "title" : "Eclogues", "author" : "Dante", "copies" : 2 }
{ "rownum" : 3, "title" : "The Odyssey", "author" : "Homer", "copies" : 10 }
{ "rownum" : 4, "title" : "Iliad", "author" : "Homer", "copies" : 10 }
Можно ли создать этот ROWNUM в MongoDB?
Нет, это невозможно. Возможно, вам будет лучше объяснять * «почему вы думаете, что вам нужно это» *. Обычно он используется в реализациях SQL для оконных постраничных результатов, например, когда элементы сортируются. Вероятнее всего, есть другие варианты, если вы скорее объяснили, как ваш вариант использования решить. –
Это улучшение. Использование строки для id - действительно плохая идея, когда данные массивные,> 100mio, в инструменте BI, который берет данные из источника данных MongoDB. Нет действительно обходного пути, если ... – ic3
Добавление чисел в строки в MongoDB (что вы не можете сделать в любом случае) означало бы передачу всех результатов/данных (предположительно, до выбора «страницы») и назначение по одному. Таким образом, никоим образом не было бы возможно улучшение из-за того, как архитектура делает вещи. Я дал вам возможность. 1. Примите «Нет, это невозможно сделать». 2. Объясните свой прецедент и, возможно, получите альтернативный подход, который лучше, чем вы могли до сих пор думать. Как я вижу, один из них - тупик, а другой - куда-то. –