Lev
Пилить свой changefeed?
Anton
Что делать если есть два API которые используют одни и те же модели, как лучше сделать так чтобы не дублировать модели, чтобы они были в одном месте, и использовались несколькими АПИ
Max
Доброе утро
Max
Как правильно пользоваться limit и skip?
Max
Запрос построить
Max
Хочу через go получить слайс пользователей для отображения постранично на клиенте
Max
Вот фильтр:
Max
bson.D{ {"$limit", limit}, {"$skip", skip}, }
Max
Ладно, разобрался 😂
Lev
Как безполезненно сделать автоинкремент в монге?
Nick
Как безполезненно сделать автоинкремент в монге?
Отказаться в пользу стандартных оид
Lev
Отказаться в пользу стандартных оид
Что если мне нужен автоинкремент? Не для ид, но для порядка сохранения например
Lev
Бизнес задача какая?
ща будет стыдно. Синхронизация коллекций по запросу
Lev
я намеревелся делать это через самопальные changefeed
Lev
@yatoba Я просто не могу найти нормального способа это синхронизировать. Пишут про dump-restore
Nick
@yatoba Я просто не могу найти нормального способа это синхронизировать. Пишут про dump-restore
если данные появляются в базе, то oid автоинкремент ничего не даст, если данные появляются извне, то там наверняка уже есть свой идентифкатор и можно его использовать. Скажите что подразумеваете под синхронизапцие коллекций
Lev
если данные появляются в базе, то oid автоинкремент ничего не даст, если данные появляются извне, то там наверняка уже есть свой идентифкатор и можно его использовать. Скажите что подразумеваете под синхронизапцие коллекций
Изменения вносятся в коллекцию в базе А. Нужно по запросу делать так, чтобы в базе Б появлялась копия коллекции (синхронизировалась). Коллекция в Б только для чтения
Lev
Идентификатора извне нет. Ну, есть, но он не надёжен
Lev
Я не думал делать oid автоинкремент. Я думал сделать таблицу рядом с автоинкрементом. А-ля change feed
Lev
Какую проблему должна снять копия в базе Б, как часто должна "синхронизироваться"?
В базе Б будет прилично запросов с аналитикой. Базе А эти нагрузки не нужны. Синхронизация сейчас каждый час. Может чаще, по запросу
Lev
У меня уже есть ноды. Как сделать так, чтобы для моих нод запись в базу ждала все ноды, А для новой ноды Б - ждать не требовалось, пусть асинхронно
Dmitry
У меня уже есть ноды. Как сделать так, чтобы для моих нод запись в базу ждала все ноды, А для новой ноды Б - ждать не требовалось, пусть асинхронно
это назывется Read Preference. явно указать запаросам аналитики с какого сервера читать данные. https://docs.mongodb.com/manual/core/read-preference/
dnacd 🦜
Ребят, помогите отфильтровать значение, есть объект { "post_id": "61baf9898f0e588dca981322", "slug": "justaslugfield", "categories": [ { "title": "sport", "slug": "sportslug" }, как вытащить categories slug в данном случае
dnacd 🦜
или дайте где почитать об этом, в доке не нашел, либо слепой
Maksym
Ребят помогите плиз, я не понимаю как сделать, у меня users это массив и хочу в зависимости от его длинны дальше что-то делать
Maksym
получилось что-то )
Denis
Добрый день! Пользуюсь монго впервые, и меня интересует структура «отсортированного списка»: есть множество чисел, я хочу уметь быстро вставлять туда новое число и узнавать его индекс в отсортированном массиве — к примеру для задачи хранения лучших результатов игры Это можно делать в обыкновенной таблице, но тогда каждый поиск индекса будет требовать сортировки, что очень неэффективно. Уверен, что такая функциональность существует, но не смог нагуглить, подскажите, пожалуйста.
Lev
Тогда вам достаточно оставит ьвсе как есть, _id в любом виде достаточно для этой задачи
Данных то много. Как понять, какие данные надо передавать для обновления? Я планировал при каждой операции в коллекции, писать лог где будет указан порядок операции (автоинкремент), тип операции (upsert/delete) и идентификатор сущности. А «клиент» будет помнить номер последнего полученного лога и будет запрашивать логи после этого номера
Lev
Ну, вообще, прямо сейчас не планируются. Но раз пилить свой change feed ну значит удаления и апдейты
Nick
тогда вам нужно отдельно вести события и нет вообще необходимости заморачиваться с идшниками, при вставке вы берете его после вставки из результата действия, а в остальных случаях у вас уже есть ид. Но тут лучше взглянуть на changeStreams монговские и через несколько итераций прйти к предложению человека выше - просто сделать реплку в режиме только для чтения. Ну или если данные не меняются то ввести поле с датой изменения в базе и делать выборки изменений относительно последней даты в коллекции Б - максимально простая реализация, быстро делается, просто отлаживается
Lev
{ "$lt" : { "$date" : "2020-09-13T11:54:20.046Z"}}} а вот так неользя делать в агрегациях? $date не работает?
Lev
Вот тут [{ "$match" : { "awarenessTime" : { "$lt" : { "$date" : "2020-09-13T11:54:19.879Z"}}}}, { "$count" : "count"}]
Nick
Вот тут [{ "$match" : { "awarenessTime" : { "$lt" : { "$date" : "2020-09-13T11:54:19.879Z"}}}}, { "$count" : "count"}]
надо дату обернуть в new Date() или аналог в вашем драйвере https://docs.mongodb.com/manual/reference/method/Date/
Nick
А без new Date это можно? $date не работает?
на сколько помню строки автоматом не конвертируются, а в целом для выборок в базе надо чтобы тип данных совпадал, поэтмоу если в базе хранятся в строках - то будет работаь, если с типом Date то надо использовать new Date
Lev
Нет оператора $date в mongo
А как же это у меня работает..
Dmitry
А как же это у меня работает..
Если работает, то это $date extended JSON format for BSON. https://docs.mongodb.com/manual/reference/mongodb-extended-json/#data_date
Lev
Такой формато доступен только при использовании опреденных драйверов?
Dmitry
Такой формато доступен только при использовании опреденных драйверов?
Это указатель данных в json. Какой драйвер используете?
Dmitry
вроде явовский) ну пишу на яве
https://stackoverflow.com/questions/13752616/mongodb-java-drivers-search-by-date-range
Lev
по какой то причине явовый new DateTime идет как $date и аггрегация почему то не работает
Artem
Ребят, подскажите пожалуйста. Можно ли декодировать вот такой объект в данную структуру игнорируя ключ “ru”? Т е можно как то сразу вернуть id, title, descr ?
Artem
Artem
Anatole
подскажите как прочекать кто сейчас мастер в монго кластере из скрипта bash
Андрей
Всем привет, чет не пойму, findOne бывает не выдает ни ошибку ни данных... просто null... Хотя запись такая в бд присутствует
Андрей
Google
Проверь что прилитает из params
Google
Выводит в console что в params
Google
uid есть у тебя ?
Stanislav
всем привет. а подскажите какой-нить хороший скрипт для дампа шардированного кластера, что бы и балансер стопил и локи ставил и все првоерки были. я погуглил, ничего толкого не нашел
Yura
Привет, а есть способ какой то посчитать количество i/o запросов в монгу?
NO WAR!
Всем привет. Nodejs, mongoose. Я совсем начинающий. Хочу сохранить в mongo изображение. Для хранения фото в схеме определил тип поля 'Buffer'. Кстати, это я правильно сделал? Дальше не могу найти материалов которые бы понятно объяснили что делать дальше и как сохранить в это поле изображение. Подскажите, пожалуйста, что читать, куда копать или в целом принцип. Что я должен сохранить в это поле? Upd: файлы будут маленькие, GridFS не нужен. Как это сделать без Grid?
Anton
Вот npm модуль
NO WAR!
Мой совет - GridFS + Multer
Насколько понял, Grid не нужен. Мои файлы точно не будут больше 16мб. Будут намного меньше. Забыл это написать. Сейчас поправлю вопрос. Это же наверняка можно сделать без Grid. Как?
Anton
В этом помочь не смогу
NO WAR!
Можно
Понял. Спасибо.
Anton
Понял. Спасибо.
https://stackoverflow.com/a/52057719/12865136
NO WAR!
https://stackoverflow.com/a/52057719/12865136
Спасибо. Этого не находил, хотя много что смотрел. Попробую.
NO WAR!
есть ещё вариант хранить в монге ссылки, а сами файлы на стороннем сервисе. Например в s3
Думал об этом. Может так и сделаю позже. Сейчас хочу с хранением в mongo разобраться.
Belgian
Думал об этом. Может так и сделаю позже. Сейчас хочу с хранением в mongo разобраться.
Сохранять файлы в базе не оч хорошая идея ИМХО, мы отказались в пользу s3. С файлами в базе (под 2терабайта картинок) maintenance был затруднён. Инишиал синк нового мембера реплики вообще не проходил.