Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
02.04.2021, 15:18
|
|||
---|---|---|---|
|
|||
MongoDB Предыдущая запись. |
|||
#18+
Есть записи Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
Если какой-нибудь простой способ зная ключ _id получить предыдущую запись? Скажем от ключа 3001 получить запись с ключом 3000, а от ключа 2000 - запись 1002 Или только находить все с меньшим значением ключа, сортировать их в обратном порядке и потом брать первую? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.04.2021, 20:04
|
|||
---|---|---|---|
MongoDB Предыдущая запись. |
|||
#18+
voraa , в монге нет понятия "предыдущая" или "последующая" запись. Есть только выборка с условием. И да, тебе придется искать по условию "меньше" твоего ИД и с обратной сортировкой. Хорошо хоть ИД генерятся в "сортировочной последовательности". Можно использовать findOne() - так ты получишь нужный документ и в единственном экземпляре. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.04.2021, 20:06
|
|||
---|---|---|---|
MongoDB Предыдущая запись. |
|||
#18+
voraa Или только находить все с меньшим значением ключа, сортировать их в обратном порядке и потом брать первую? Это не особо затратно, т.к. по ИД есть индекс по умолчанию. Т.ч все будет быстро. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.04.2021, 20:38
|
|||
---|---|---|---|
|
|||
MongoDB Предыдущая запись. |
|||
#18+
krvsa voraa Хорошо хоть ИД генерятся в "сортировочной последовательности". Когда генерятся, то да. А когда я сам назначаю _id, и совсем не обязательно, что записи добавляются в последовательности возрастания _id. Поэтому и волнуюсь. Когда есть порядка 60000 записей, то будут браться, например 50000 с меньшим _id, потом сортироваться, что бы получить больший среди меньших. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.04.2021, 21:55
|
|||
---|---|---|---|
MongoDB Предыдущая запись. |
|||
#18+
voraa Когда генерятся, то да. А когда я сам назначаю _id, и совсем не обязательно, что записи добавляются в последовательности возрастания _id. Когда сам что-то назначаешь - сам и должен думать как потом с этим жить... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.04.2021, 21:59
|
|||
---|---|---|---|
MongoDB Предыдущая запись. |
|||
#18+
voraa Когда есть порядка 60000 записей, то будут браться, например 50000 с меньшим _id, потом сортироваться, что бы получить больший среди меньших. Индекс работает не так... А по ИД делается индекс автоматически, без твоего участия. Ты сможешь проанализировать эффективность выборки. Сколько записей просмотрено и сколько было возвращено тебе в результате. Напомню, ты можешь использовать findOne() или limit(1)... Т.о. будет использована только одна запись, а не куча, как ты предполагаешь... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.04.2021, 11:46
|
|||
---|---|---|---|
|
|||
MongoDB Предыдущая запись. |
|||
#18+
krvsa, И действительно все довольно быстро. Использовал findOne От 14 до 40 ms на операцию (в node измерял) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.04.2021, 17:52
|
|||
---|---|---|---|
MongoDB Предыдущая запись. |
|||
#18+
voraa , монго можно запускать в некоем режиме - он будет писать в ограниченную коллецию информацию по всем запросам. Там главное 2 цифири: - сколько просмотрено записей - сколько возвращено Т.о. можно выбирать запросы с большим расхождением этих цифр и доводить до ума... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.04.2021, 05:43
|
|||
---|---|---|---|
|
|||
MongoDB Предыдущая запись. |
|||
#18+
krvsa voraa , в монге нет понятия "предыдущая" или "последующая" запись. +100. Надо добавить в шапку при создании треда и выделить жирно-красным. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.04.2021, 05:44
|
|||
---|---|---|---|
|
|||
MongoDB Предыдущая запись. |
|||
#18+
voraa От 14 до 40 ms на операцию (в node измерял) На самом деле это - мегатормозно. За это время на РСУБД можно выбрать сотню записей по производным индексам (да, тоже на ноде, с микросервисом, из оракла и перегонкой туда-сюда в json 2 раза). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=48&tablet=1&tid=1856527]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
36ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
191ms |
get tp. blocked users: |
0ms |
others: | 2240ms |
total: | 2483ms |
0 / 0 |