
Stepan
12.06.2018
12:41:19
Мне очень надо было. Я сделал запрос на count, потом плюсовал и писал.
Но если документы могут удалятся, етот вариант не подойдет
И данных у меня было немного, лишний запрос был не критический

Nick
12.06.2018
13:06:00
так а зачем вам автоинкремент? какую задачу с его помощью хотите решить?

Google

Peter
12.06.2018
13:21:31
Это для юзеров, которые будут делать import, ObjectId не красивый идентификатор

Nick
12.06.2018
13:24:44
тут трейдофф - красиво и геморно против функционально и безболезненно. в общем случае честные автоинкрент треубет создания отдельной коллекции с единственным документом и единственным полем currentId. Собственно использовать findAndModify с $inc для увеличения счетчика

Sergey
12.06.2018
13:30:29
коллекцию со счетчиками завести
там файн и апдейт метод есть
или модифи

Nick
12.06.2018
13:33:32

Sergey
12.06.2018
13:34:08
не понял вопроса

Nick
12.06.2018
13:34:28
я чтото не видел в монге коллеции счетчиков

Sergey
12.06.2018
13:34:54
это стандартное решение из документации

Nick
12.06.2018
13:35:20
ссылочку если не затруднит

Sergey
12.06.2018
13:37:09
обычная коллекция с именем counters или на свое усмотренип где_id имя другой коллекции а counter поле которое будет инкрементировать при каждом обращении к нему
я тож самое написал что и у тебя в ответе просто не читал что ты писал
в ормках аутоинкремент так же реализуется

Google

Sergey
12.06.2018
13:39:12
например в mongoengine

Nick
12.06.2018
13:42:44
собственно как и ожидалось, ни по автоинкремент ни по сиквенсу в стандартной доке чтото не нашлось. так что не стоит вводить человека в зпблуждение чтобы он начал использовать какуюто коллекцию счетчиков. их нужно либо вручную реализовывать, либо искать что может одм

yopp
12.06.2018
14:34:00
Коллекция со счетчиками является наиболее вменяемым решением этой проблемы.
Но нужно учитывать что работать это будет только через update(inc: ). find в коллекцию будет только «примерным» последним номером и его можно использовать только в информационных целях
Но как следствие использование автоинкремента будет всегда требовать чтения и записи.
И надо понимать что гарантия будет только в том, что следующий номер будет больше предыдущего. На сколько больше: не известно. Получить непрерывное множество будет очень сложно


Vladislaw
12.06.2018
16:00:14
Ребят, какие есть best practise для совершения последовательно/одновременно нескольких запросов к монге на NodeJS? у меня получается пирамидка из callback'ов и это не есть гуд.

Stepan
12.06.2018
16:18:18
promise
для паралельного запуска несколько есть метод promise.all

Src
12.06.2018
18:41:34
подскажите пожалуйста бесплатное облако с монгой. несколько сот тысяч записей в сутки. небольших текстовых
облачный сервис нужен
бесплатный при нагрузках в таких пределах
ничего не понял. можете дать ссылку типа хероку или firebase
чтобы мой скрипт на хероку мог туда записывать данные свои
во другое дело
а скажите
если обычную табличную бд взять то там записываются только данные. ну например количество просмотров столбец и дальше просто числа
а тут он в каждой записи будет много лишнего записывать или что
просто скрипт пока в текст пишет. и выходит несколько сот мегабайт в месяц где-то

Google

Src
12.06.2018
18:53:48
ну он пишет со всеми данными. типа число просмотров: 5. потом через час число просмотров: 9. и тд
а в таблице бы просто числа шли
а тут как? тоже забьется быстро?
ладно буду пробовать а там видно будет

Maksim
13.06.2018
08:01:02
Доброе утро.
Скажите пожалуйста, по своему опыту, использовать MapReduce хорошо или плохо?
Просто написал код, а опыта в монге нету. Меня сейчас обвиняют, что приложение из-за MapReduce подвешивает базу(без аргументов, просто типа это плохо), хотя на сколько я понимаю, MapReduce это отличный инструмент распределенного Stateless вычисления. К тому же выборки минимальные.

Artem
13.06.2018
08:01:47
по ситуации же)

Maksim
13.06.2018
08:02:04

rdcm
13.06.2018
08:02:59
Так подвешивает или просто обвиняют?)

Maksim
13.06.2018
08:05:24
Так подвешивает или просто обвиняют?)
Причина окончательно не установлена, просто обвиняют mapreduce и просят от него избавиться. Хотя на клиенте считать я уверен будет медленнее.
Поэтому и задал вопрос, неужели mapreduce имеет такую плохую репутацию? Или это просто наброс на вентилятор был? :)

Gleb
13.06.2018
08:06:30
всё зависит от того какие запросы в мапредьюсе же и на каких серверах это крутится, мб там всё из говна и палок собрано и адовые запросы. Ну надо тоже какую то конкретику

rdcm
13.06.2018
08:08:37
Если сами запросы мимо индексов, точно будет медленно. Остальное по ситуации.

Artem
13.06.2018
08:09:34
было бы интересно посмотреть на пример, заодно можно попросить админов построить план запросов

Gleb
13.06.2018
08:10:02
и в чём вообще обвиняют? проц\рам\ио?

rdcm
13.06.2018
08:11:47
Помню кто-то ругал на какой-то конфе монговский map reduce, возможно ноги от туда. Но это не значит, что его нельзя юзать.

yopp
13.06.2018
08:12:13
За ряд архитектурных особенностей
Если mr с out в коллекцию, то в шардированном кластере могут быть проблемы, особенно если они очень частые

Artem
13.06.2018
08:15:30
если мне не изменяет память, у монги требования к reduce по размеру входных данных

Sunlive
13.06.2018
09:31:46
как в монге сортируются по дефолту записи в коллекции, по _айди?

Artem
13.06.2018
09:35:31
если я не ошибаюсь, по _id создается индекс по умолчанию.

Google

Artem
13.06.2018
09:40:40
если сделать запрос типа db.collection.find({}).sort({}) то сортировка произойдет по _id

Nick
13.06.2018
09:43:39

Sunlive
13.06.2018
09:44:10
просто я не могу понять, я добавляю 4 записи 1 и 2 на 1 и 4 поз соотв получаются
например
в хаотическом порядке как то

Nick
13.06.2018
09:44:42
если нужен порядок - указывайте ключи сортирвоки по кторым нужен порядок
хотя сдается мне вы гвоорите про массив внутри документа
а не про вообще работу с монгой

Artem
13.06.2018
09:45:44

Nick
13.06.2018
09:47:17
даже не в порядке записи, а в порядке хранения, как внутри менеджерится расположение доков одному WT известно

Artem
13.06.2018
09:48:19
надо попробовать на практике поэкспериментировать

Sunlive
13.06.2018
10:01:42
4 подряд записи 1 3 4 2

Nick
13.06.2018
10:02:32
какую задачу хотите решить

Sunlive
13.06.2018
10:02:47
возвращать самое новое сообщение
по дате, такое, не очень варик вроде

Nick
13.06.2018
10:03:04
добавляйте поле со временем и берите максимальное

Sunlive
13.06.2018
10:03:15
оно есть)
хотя

Google

Sunlive
13.06.2018
10:03:39
просто таймстемп в секундах юниксовый
спасибо

Nick
13.06.2018
10:04:40
это критичная часть чтобы получать реально самое новое? т.е. допустимо ли просто взять предыдущее или там перепутать изза коллизии во времени?

Sunlive
13.06.2018
10:05:36
ну хотят что бы самое новое было в самом верху
на странице

Nick
13.06.2018
10:08:07
опредлитесь с критерием "самое новое", добавьте необходимую информацию в виде поля в документ и сортируйте по нему. Если данных много, то добавьте индекс

Artem
13.06.2018
10:16:02
а зачем добавлять поле со временем? просто последовательно возрастающий, с каждым новым документом, сиквенс, и отображать документ с максимальным его значением?

Bandikoot
13.06.2018
10:18:48
товарищи, а обратный индекс по _id не проще?
если таймстэмпы не нужны отдельно
ObjectId же и так содержит дату

Sunlive
13.06.2018
10:22:30

Nick
13.06.2018
10:22:30
использовать _id для этого - костыль, который аукнется рано или поздно если проект будет хоть както развиваться. в общем случае почти всегда при необходимость показывать самый новый возникнет необходимость показать с по, а это уже на _id делается через еще большие костыли