Nick
кстати
Nick
у вас в первом плане запроса пишет "nReturned" : 9480,
Nick
типа только чтолько доков найдено в результате
Dmitry
а можно как-то использовать bucket или что-то такое чтобы разбить базу на куски и по кусочкам разбирать? В принципе мне так и так нужно на 1 запрос не больше 10к доков
Nick
собственно если вы укажите например не 10к а 9к, то должно быть быстрее
Nick
точнее первыая выбокра будет быстрее, а вторая как и сейчас
Dmitry
просто limit?
Nick
да, попробуйте для эксперимента
Dmitry
а если обрезать скажем по docID (Int) - может ускорить? Скажем 0 <= docID <= 40000 и потом уже expr
Dmitry
ну и потом брать [40000, 80000], [80000, 120000]....
Nick
про диапазоны не скажу, надо в доки лезть про группировке
Dmitry
ок, спс
Dmitry
пойду фигачить :)
Nick
реальное ускорение кстати сможете получить, если добавите услвоие для docDownloadDate, например работаем с доками загруженными не раньше неделю назад
Nick
и если у вас не много дкоов обновляется (порядка как раз 10к из обещго объема в 2кк) то будет прирост
Dmitry
Dmitry
в общем главное - сузить воронку перед expr?
Nick
именно
Dmitry
понял, большое спасибо за помощь
Nick
Petro
Вопрос, когда делаю insert в базу(js Mongodb Driver), нужно сделать auto increment поля, как это можно реализовать? Знаю при update можно $inc, но мне нужно при insert
Petro
И ещё вопрос, есть ли способ в агрегатке string в objectId перевести? Для lookup
SvPupok
Камрады, сегодня с 19.00 до 21.00 организуем стрим посвященный шардингу, попытаемся разобрать вопросы по выбору ключей, борьбе с монотонностью и если успеем, поднимем кластер на тестовой среде.
https://youtu.be/JH3Pusw1aZg
Nick
Stepan
Мне очень надо было. Я сделал запрос на count, потом плюсовал и писал.
Stepan
Но если документы могут удалятся, етот вариант не подойдет
Stepan
И данных у меня было немного, лишний запрос был не критический
Nick
так а зачем вам автоинкремент? какую задачу с его помощью хотите решить?
Petro
Это для юзеров, которые будут делать import, ObjectId не красивый идентификатор
Nick
тут трейдофф - красиво и геморно против функционально и безболезненно. в общем случае честные автоинкрент треубет создания отдельной коллекции с единственным документом и единственным полем currentId. Собственно использовать findAndModify с $inc для увеличения счетчика
Anonymous
коллекцию со счетчиками завести
Anonymous
там файн и апдейт метод есть
Anonymous
или модифи
Anonymous
не понял вопроса
Nick
я чтото не видел в монге коллеции счетчиков
Anonymous
это стандартное решение из документации
Nick
ссылочку если не затруднит
Anonymous
обычная коллекция с именем counters или на свое усмотренип где_id имя другой коллекции а counter поле которое будет инкрементировать при каждом обращении к нему
Anonymous
я тож самое написал что и у тебя в ответе просто не читал что ты писал
Anonymous
в ормках аутоинкремент так же реализуется
Anonymous
например в mongoengine
Nick
собственно как и ожидалось, ни по автоинкремент ни по сиквенсу в стандартной доке чтото не нашлось. так что не стоит вводить человека в зпблуждение чтобы он начал использовать какуюто коллекцию счетчиков. их нужно либо вручную реализовывать, либо искать что может одм
yopp
yopp
Коллекция со счетчиками является наиболее вменяемым решением этой проблемы.
Но нужно учитывать что работать это будет только через update(inc: ). find в коллекцию будет только «примерным» последним номером и его можно использовать только в информационных целях
yopp
Но как следствие использование автоинкремента будет всегда требовать чтения и записи.
yopp
И надо понимать что гарантия будет только в том, что следующий номер будет больше предыдущего. На сколько больше: не известно. Получить непрерывное множество будет очень сложно
Vlad
Ребят, какие есть best practise для совершения последовательно/одновременно нескольких запросов к монге на NodeJS? у меня получается пирамидка из callback'ов и это не есть гуд.
Stepan
promise
Stepan
для паралельного запуска несколько есть метод promise.all
Anonymous
подскажите пожалуйста бесплатное облако с монгой. несколько сот тысяч записей в сутки. небольших текстовых
Anonymous
облачный сервис нужен
Anonymous
бесплатный при нагрузках в таких пределах
Anonymous
ничего не понял. можете дать ссылку типа хероку или firebase
Anonymous
чтобы мой скрипт на хероку мог туда записывать данные свои
Anonymous
во другое дело
Anonymous
а скажите
Anonymous
если обычную табличную бд взять то там записываются только данные. ну например количество просмотров столбец и дальше просто числа
Anonymous
а тут он в каждой записи будет много лишнего записывать или что
Anonymous
просто скрипт пока в текст пишет. и выходит несколько сот мегабайт в месяц где-то
Anonymous
ну он пишет со всеми данными. типа число просмотров: 5. потом через час число просмотров: 9. и тд
Anonymous
а в таблице бы просто числа шли
Anonymous
а тут как? тоже забьется быстро?
Anonymous
ладно буду пробовать а там видно будет
Maksim
Доброе утро.
Скажите пожалуйста, по своему опыту, использовать MapReduce хорошо или плохо?
Просто написал код, а опыта в монге нету. Меня сейчас обвиняют, что приложение из-за MapReduce подвешивает базу(без аргументов, просто типа это плохо), хотя на сколько я понимаю, MapReduce это отличный инструмент распределенного Stateless вычисления. К тому же выборки минимальные.
SvPupok
по ситуации же)
rdcm
Так подвешивает или просто обвиняют?)
Maksim
Так подвешивает или просто обвиняют?)
Причина окончательно не установлена, просто обвиняют mapreduce и просят от него избавиться. Хотя на клиенте считать я уверен будет медленнее.
Поэтому и задал вопрос, неужели mapreduce имеет такую плохую репутацию? Или это просто наброс на вентилятор был? :)
Gleb
всё зависит от того какие запросы в мапредьюсе же и на каких серверах это крутится, мб там всё из говна и палок собрано и адовые запросы. Ну надо тоже какую то конкретику
rdcm
Если сами запросы мимо индексов, точно будет медленно. Остальное по ситуации.
SvPupok
было бы интересно посмотреть на пример, заодно можно попросить админов построить план запросов
Gleb
и в чём вообще обвиняют? проц\рам\ио?
rdcm
Помню кто-то ругал на какой-то конфе монговский map reduce, возможно ноги от туда. Но это не значит, что его нельзя юзать.
yopp
yopp
За ряд архитектурных особенностей
yopp
Если mr с out в коллекцию, то в шардированном кластере могут быть проблемы, особенно если они очень частые