powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB Предыдущая запись.
10 сообщений из 10, страница 1 из 1
MongoDB Предыдущая запись.
    #40059132
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть записи
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
{_id: 1000, name: 'name1'...}
{_id: 1001, name: 'name2'...}
{_id: 1002, name: 'name3'...}
{_id: 2000, name: 'name4'...}
{_id: 3000, name: 'name5'...}
{_id: 3001, name: 'name6'...}
{_id: 3020, name: 'name7'...}
{_id: 4000, name: 'name8'...}


Если какой-нибудь простой способ зная ключ _id получить предыдущую запись?
Скажем от ключа 3001 получить запись с ключом 3000, а от ключа 2000 - запись 1002

Или только находить все с меньшим значением ключа, сортировать их в обратном порядке и потом брать первую?
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059182
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa , в монге нет понятия "предыдущая" или "последующая" запись.
Есть только выборка с условием.

И да, тебе придется искать по условию "меньше" твоего ИД и с обратной сортировкой. Хорошо хоть ИД генерятся в "сортировочной последовательности".
Можно использовать findOne() - так ты получишь нужный документ и в единственном экземпляре.
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059184
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
Или только находить все с меньшим значением ключа, сортировать их в обратном порядке и потом брать первую?

Это не особо затратно, т.к. по ИД есть индекс по умолчанию. Т.ч все будет быстро. ;)
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059194
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa
voraa Хорошо хоть ИД генерятся в "сортировочной последовательности".

Когда генерятся, то да. А когда я сам назначаю _id, и совсем не обязательно, что записи добавляются в последовательности возрастания _id.
Поэтому и волнуюсь.
Когда есть порядка 60000 записей, то будут браться, например 50000 с меньшим _id, потом сортироваться, что бы получить больший среди меньших.
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059206
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
Когда генерятся, то да. А когда я сам назначаю _id, и совсем не обязательно, что записи добавляются в последовательности возрастания _id.

Когда сам что-то назначаешь - сам и должен думать как потом с этим жить...
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059207
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
Когда есть порядка 60000 записей, то будут браться, например 50000 с меньшим _id, потом сортироваться, что бы получить больший среди меньших.

Индекс работает не так... А по ИД делается индекс автоматически, без твоего участия.

Ты сможешь проанализировать эффективность выборки. Сколько записей просмотрено и сколько было возвращено тебе в результате.
Напомню, ты можешь использовать findOne() или limit(1)... Т.о. будет использована только одна запись, а не куча, как ты предполагаешь...
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059272
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,
И действительно все довольно быстро. Использовал findOne
От 14 до 40 ms на операцию (в node измерял)
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059367
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa , монго можно запускать в некоем режиме - он будет писать в ограниченную коллецию информацию по всем запросам.
Там главное 2 цифири:
- сколько просмотрено записей
- сколько возвращено

Т.о. можно выбирать запросы с большим расхождением этих цифр и доводить до ума...
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059611
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
voraa , в монге нет понятия "предыдущая" или "последующая" запись.

+100. Надо добавить в шапку при создании треда и выделить жирно-красным.
...
Рейтинг: 0 / 0
MongoDB Предыдущая запись.
    #40059612
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
От 14 до 40 ms на операцию (в node измерял)

На самом деле это - мегатормозно. За это время на РСУБД можно выбрать сотню записей по производным индексам (да, тоже на ноде, с микросервисом, из оракла и перегонкой туда-сюда в json 2 раза).
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB Предыдущая запись.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]