Kirill
Ребята, а как строится геокластер на монге?
Который полноценно федеративный. В каждом регионе или стране есть федерация кластера, она хранит данные привязанные к региону и из таких федераций общик кластер.
Нашел по Atlas ответ, а какой по Mongo CE или EE для собственной инсталляции?
Как распределяются данные? (какие куда для соблюдения федеративного хранения)
Кто у кого мастер, к кому можно обратиться?
Есть ли форвард запросов, которые пришли не в ту федерацию?
Что происходит при разделении федерации и разделении кластера?
Если федерация не доступна полностью в одном регионе, кто выбирается резервом?
Kirill
Olga Tomakhina 💛
А может кто знает как сделать replaceAll with regex ?
Anonymous
флаг g
Olga Tomakhina 💛
El
можете прояснить?
https://t.me/regex_ru
g for global, собрать все встреченные случаи искомого. Гуглится несложно.
Olga Tomakhina 💛
El
Как собирание всех инстансов заменяемого могло бы помочь.
🏳️🌈Сель
Привет всем
🤔 допустим, если я хочу сохранять информацию о пользователях с телеграмма по их id, стоит ли мне использовать свойство Документа _id, или лучше создать новое свойство id / userId для этого?
Olga Tomakhina 💛
привет! скажите, пожалуйста, а существующий кластер без шардов, но только replicaset - можно добавить шардирование на лету?
Р00-👨🏻💻Михаил
Добрый вечер
Есть коллекция с подписчиками новостной рассылки в телеграм
Рассылки обозначены в другой коллекции а в коллекции подписчиков просто проброшен указатель к какому каналу он подписан
И есть telegram id
Встал вопрос узнать среди подписчиков сколькие из них подписаны сразу на несколько каналов
Как это можно сделать с помощью аггрегаций?
В базе есть не уникальный telegramId который может дублироваться и канал на который юзер подписан. И на входе получается канал по которому нужно посмотреть сколько в коллекции пользователей имеют такой же telegram id но уже к другому каналу
Р00-👨🏻💻Михаил
Я нашел решение когда расписал вопрос
Делать $group с _id как объект с двумя полями
Тогда можно сгруппировать не уников
и потом с помощью $match их отловить
А затем уже сделать поиск по необходимому полю
Но есть загвоздка
очень много записей и выдает ошибку exceeded memory limit
Р00-👨🏻💻Михаил
Нужна миграция похоже
И всего делов
🏳️🌈Сель
Потоковой обработке? А зачем она может понадобиться? И с прерыванием ещё...
Eva🇺🇦
Привет!
У моего поста есть поле score, которое расчитывается по формуле через agenda.js (то есть раз в час у меня запускается job, делает выборку из 50 доков, обновляет им это поле). Соответственно, нужно знать, когда был последний апдейт этого поля. Как я понимаю, ласт апдейт всего документа не подойдет, т.к. есть и другие поля.
Как обычно чекают ласт апдейт филда? Нужно значение филда оъектом сделать {updatedAt: … , score: … }? Или есть другая бест практис? Спасибо!
Joe
Anonymous
Добрый день, подскажите, что надо прописать в конфиге монги, чтобы через ssh напрямую к ней можно было подключаться, развернуто на centos7. Версия 4.4
Ранее в докере работала с официального образа с докерхаба,и можно было, и вебморду подключить (robo3t, ещё какая-то) к бд, и никаких проблем.
Но отказались от монги в контейнере, и что-то ни фига к ней не подключиться напрямую из вне. Ssh error.
Приходится на сервер заходить сам по ssh, и там уже коннектиться
Нагуглить,увы,не вышло
Joe
Добрый день, подскажите, что надо прописать в конфиге монги, чтобы через ssh напрямую к ней можно было подключаться, развернуто на centos7. Версия 4.4
Ранее в докере работала с официального образа с докерхаба,и можно было, и вебморду подключить (robo3t, ещё какая-то) к бд, и никаких проблем.
Но отказались от монги в контейнере, и что-то ни фига к ней не подключиться напрямую из вне. Ssh error.
Приходится на сервер заходить сам по ssh, и там уже коннектиться
Нагуглить,увы,не вышло
в robo3t нужно заполнить форму с ssh
при этом учти, что робо3т не умеет работать со скрытыми директориями работать (таковым является .ssh/ где хранятся твои ключи)
нужно приватник ssh скопипастить в публичную директорию (например ssh/) и указать файл по тому пути робо3т
З.ы. проблема по описанию не с монгой а с подключением к серверу
вариант 2й:
ssh тунелирование(port forwarding)
можно пробросить порт монги на локальную машину и подключаться к ней
ssh -L 27018:localhost:27017 YOUR_USERNAME@REMOTE_IP
YOUR_USERNAME и REMOTE_IP замени на свои
а параметр -L 27018:localhost:27017 указывает что нужно 27017 порт(монги) из удаленной машины пробросить на локальную машину в порт 27018
и после этого клиенту когда будет цепляться к монге нужно указать 27018 порт
думаю поможет)
Sreenatha Reddy K R (Sree)
Good bye
Максим
подскажите в каком формате хранятся изображения если заливать в монгу?
Максим
base64?
Максим
Joe
Максим
можешь помочь с моим вопросом?
Олег
Всем привет, подскажите пожалуйста что я делаю не так, почему мне не добавляет id в массив, спасибо)
Олег
Viktar
Viktar
https://docs.mongodb.com/manual/reference/operator/update/push/
Viktar
https://docs.mongodb.com/manual/reference/operator/update/addToSet/
Олег
Viktar
На первый взгляд ошибки не вижу. Посмотрите что приходит в ваши переменные
Олег
Viktar
Возможно, дело в вашей схеме, судя по всему там ожидается ид
Viktar
А не объект {id:ид}
Ilya
Anonymous
Не всегда _id возрастает - есть граничный случай. Когда счетчик в младших битак objectid переполняется, он обнуляется. И если одновременно не настанет следующая секунда _id уменьшится относительно предидущего.
Anonymous
/spam
Anton
Как в Mongo updateOne() сделать $set: {‘foo.bar’: ‘value’} если foo не существует в документе
Anton
Просто если сделать $set: {foo: {bar: ‘value’}} то таким образом если ‘foo’ существовал, то он бы затерся
Danil
Здравствуйте, у меня такая проблема, я хочу выводить в боте из базы данных, но пишет вот такое вот, в консоли ошибок нет
Danil
Anton
Anton
а стой
Danil
Anton
там надо в массив курсор конвертнуть
Danil
Anton
list(collection.find())
Anton
оберни в list()
Danil
В переменной?
Danil
Ну в leadp, ок, попробую, спасибо
Anton
а нужно list(collection.find())
Anton
Ну в leadp, ок, попробую, спасибо
ну типа. Но будь готов, find() возвращает каждый раз массив данных (а точнее курсор). Если тебе нужен один документ то используй find_one() и тогда в list() ничго не надо будет оборачивать
Anton
Viktar
Курсор не может быть вызван асинхронно
Danil
Ладно, а можно ли как-то реализовать в монгодб вот это из sqlite
for top in q.execute("SELECT username, balance FROM users ORDER BY balance DESC LIMIT 10"):
Это выводит таблицу лидеров, но я не знаю, можно ли это сделать в mongodb?
Anton
Да, я тупанул, не заметил что все ок с этим
Anton
А не знаете кстати как в MongoDB проверять что updateOne() сработал?
Раньше можно было поле .n и .ok в объекте результата. А сейчас какие-то .modifedCount добавили а те убрали
P1GAS
Aryn
Anonymous
https://docs.mongodb.com/manual/reference/method/ObjectId/
Не часто, но в моем случае - когда по objectId пытались собирать точки полигона это было неприемлемо.
Anonymous
Да, objid генерит драйвер клиента.
Anonymous
Maksym
Скажите, а чтобы выполнить например такую команду, где файл test.js должен лежать?
Maksym
просто в любом месте?
Maksym
да я не про это, но я уже вроде понял
Maksym
я пытаюсь запустить на выполнение файл, но мне выдает ошибки, может кто-то помочь с этим?
(тут ссылка на подключение к бд)
Implicit session: session { "id" : UUID("e6de5949-4d77-4115-9fbb-5b00b10f25f7") }
MongoDB server version: 4.4.10
WARNING: shell and server versions do not match
WARNING: db.eval is deprecated
uncaught exception: Error: {
"ok" : 0,
"errmsg" : "CMD_NOT_ALLOWED: $eval",
"code" : 8000,
"codeName" : "AtlasError"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.eval@src/mongo/shell/db.js:607:15
@test.js:5:7
@(shell):1:1
Error: error loading js file: test.js :
@(shell):1:1
Anonymous
это монго дб
Anonymous
Maksym
Maksym
как это сделатЬ?
Maksym
любую процедуру
Maksym
вывода количества записей в коллекции например
🏳️🌈Сель
Как можно переименовать коллекцию?
Ну, или хотябы все документы перенести в другую...
Булат
Добрый вечер! Подскажите пожалуйста, почему может не срабатывать $cond ? В коллекцию записывается сам объект $cond
client
.db("ds")
.collection("offers")
.updateOne(
item,
{
$set: {
status: {
$cond: [
{ $eq: ["$price", item.price] },
Status.REST,
Status.UPDATED,
],
},
},
},
{ upsert: true },
);
Булат
Можно ли вообще использовать $cond в updateOne ?