yopp
Service discovery через DNS это сложившаяся практика, ничего глупого в этом нет. Замена fqdn в конфигурациях может быть сложным и объемным процессом, который требует изменений в множестве компонентов. Чем больше таких компонентов, тем выше вероятность отказа. Изменить dns это централизованное решение, которое в контролируемом окружении будет более надёжным решением
Sinaver
народ подскажите, когда я делаю так await Room.find({});, разве не должен я все комнаты получить почему приходят массив с model
Sinaver
правда это mongoose
Viktar
Я вам точно не скажу как и что там происходит. Это зона ответственности девопс команды. Для меня как потребителя сервиса это выглядит как я описал. Это работает и работает хорошо.
yopp
У нас профессиональное сообщество, воздержитесь от личностных оценок. Если ваш опыт работы с DNS неудачен и вы сталкивались с проблемами с кешированием, это не значит что эти проблемы в *контролируемых* окружениях будут и у других. Более того, для публично доступных сервисов DNS является практически единственным возможным способом реализации blue/green, failover, и других механизмов требующих частых обновлений адресов. Не все могут содержать собственную автономную сеть DNS давно уже не рассылка hosts файла
Eva🇺🇦
Как самой задать _id? Пытаюсь инсертить документы уже с существующим _id через монгус, но потом стыкаюсь со странными ошибками (E11000 duplicate key...) Как правильно самостоятельно этому филду значение присвоить?
Eva🇺🇦
Уникальные _id раздавать
Я сгенерила сначала 2 юзера обычным методом. Копирнула их _id и удалила из бд. Теперь я юзаю их _id в пустой бд, но не работает..
Апач
Я сгенерила сначала 2 юзера обычным методом. Копирнула их _id и удалила из бд. Теперь я юзаю их _id в пустой бд, но не работает..
Ну ошибка монги вполне недвусмысленно указывает на то что вы пытаетесь нарушить констреинт на уникальность _id, так что лучше в тех местах бухнуть по принтлну или что там у вас который напечатает айдишники того что вставляется. Если есть хоть один дубликат, то работать это не будет
Андрей
а можно ли заблочить доступ к документу? ситуация такая: список топ-10 товаров. пользователь n1 вытащил документ из .find и забрал его, но в то же время пользователь n2 так же может забрать этот документ, если сделает это за долю секунды после первого. т.е документ не успевает удалиться при активации пользователем n1. что делать?
Simon
Помогите советом, делаю пагинацию, но у меня нет поля с датой + могут быть различные сортировки по другим полям, почитал, что skip плохо работает на больших данных, как быть в такой ситуации?
Simon
Возможно ли как то в монге, зная id нужной записи, взять после этой записи последующие N записей?
Viktar
find({_id:{$gt:xxx}}).limit(n)
Simon
find({_id:{$gt:xxx}}).limit(n)
но у меня записи не всегда отсортированы по id
Viktar
Если ид генерирует монга, то они идут по возрастанию.
Viktar
Но можете перестраховаться добавив сортировку
Simon
А не подскажите ещё?
Simon
У меня есть string, я её превращаю в arr с помощью split, как мне потом посмотреть, что в этой строке есть нужные мне записи?
Viktar
find({_id:{$gt:xxx}}).sort({_id:1}).limit(n)
Viktar
Найти записи в этом массиве?
Simon
Ну отобрать те записи, в которых есть, допустим "1"
Simon
Найти все записи, в которых есть нужная мне информация в этом массиве
Viktar
find({arr:"1"})
Simon
find({arr:"1"})
Я пытался сделать так {{$split: [tags, ","]}: "1"}
Simon
Но оно не хочет работать
Simon
Я думал, что {$split: [tags, ","]} вернет мне поле tag, только в виде массива, но что-то оно так не работает
Viktar
Я пытался сделать так {{$split: [tags, ","]}: "1"}
Вам надо использовать aggregate https://docs.mongodb.com/manual/reference/operator/aggregation/split/
Антон
Коллеги, добрый день. Занялись тут с командой шардированием своей базы. Опыта в этом ни у кого нет, так что набираемся опыта прям сейчас. Вводные такие: Был не шардированный кластер из трех нод, конфигурацией 24 vCPU, 96 ГБ RAM, база занимает около 550Гб Шардировали кластер. Сейчас имеем три управляющие ноды (MONGOS + MONGOCFG), и три шарда по три ноды той же конфигурации - 24 vCPU, 96 ГБ RAM. Все данные, конечно, сейчас на rs01, включаем шардирование на коллекциях по очереди и вот тут возникают вопросы. За час переезжает только 20 чанков по 64Мб. Это нормальная скорость миграции? Просто интуитивно кажется, что это пипец как не быстро. Может мы что-то недоконфигурили?
Anton
Парни, нужна помощь. У меня есть объект: { id: user_id Job: { mine: { acces: true }, sell: { acces: true } }} Количество объектов в Job может расти. Как мне произвести поиск по тем объектам которые внутри Job и имеют acces: true Вся проблема для меня, это обрабатывать каждый ключ в объекте job я могу как-то пропустить указание название объект внутри Job? Что-то типо такого, только что бы мне не требовалось заранее прописывать в find название работы. db.find({ Job.(тут название работы).acces: true }).toArray() Язык JS, Npm модуль: mongodb
Anton
!report
🦋noteee
await db.Polling.insertMany({owner: context.from.id, uID: utils.getRandomInt(1, 2000), status: false, token: token, classVK: new VK({token: token})}) Добавляю новую запись в БД Ловлю ошибку: RangeError: Maximum call stack size exceeded Все дело вот в этом: new VK({token: token}) Как исправить можно?
🦋noteee
Возможно ли вообще добавить класс в базу данных?
Андрей
объект можно
Олег
Здравствуйте, подскажите пожалуйста как обновить сразу два значения, первый отрабатывает отлично, второй нет, спасибо
Андрей
оператор
🦋noteee
объект можно
А если класс? new Class({})
🦋noteee
classVK: {type: mongoose.JavaScript} TypeError: Invalid value for schema path `classVK.type`, got value "undefined" В чем проблема? Не могу понять Полная строка: const Polling = mongoose.model("Polling", {owner: Number, uID: {type: Number, unique: true}, status: Boolean, token: String, classVK: {type: mongoose.JavaScript}, chats: Array})
Anton
Подскажите, что не так? Почему ничего не находит?
Anton
Олег
а, тьфу. неправильно понял. {$set: {значение 1: 123, значение2: 123}}
Записывает только первое, вот если что моя схема
Андрей
не знаю что за .project, не видел а монге
yopp
find({‘platforms.p.premium: true})
yopp
Коллеги, добрый день. Занялись тут с командой шардированием своей базы. Опыта в этом ни у кого нет, так что набираемся опыта прям сейчас. Вводные такие: Был не шардированный кластер из трех нод, конфигурацией 24 vCPU, 96 ГБ RAM, база занимает около 550Гб Шардировали кластер. Сейчас имеем три управляющие ноды (MONGOS + MONGOCFG), и три шарда по три ноды той же конфигурации - 24 vCPU, 96 ГБ RAM. Все данные, конечно, сейчас на rs01, включаем шардирование на коллекциях по очереди и вот тут возникают вопросы. За час переезжает только 20 чанков по 64Мб. Это нормальная скорость миграции? Просто интуитивно кажется, что это пипец как не быстро. Может мы что-то недоконфигурили?
Да, это нормально. Миграция чанков это сложный процесс, требующий множества шагов. Первоначальное распределение чанков по шардам может занять достаточно много времени Плюс проверьте что у вас нет чанков с флагом jumbo
Aryn
Как получить случайный документ?
Anonymous
сгенерить рандом число и вытянуть с массива?
🦋noteee
Почему в БД значение countMessages не изменяется?
🦋noteee
🦋noteee
Почему не сохраняется изменение массива?
Multistore Support
Всем привет! Сделал бота и в качестве бд использовал монго дб. В сервере создал базу данных. Но туда ничего не записывается.
Multistore Support
Может надо это изменить. И на что?
Multistore Support
Заранее спасибо
Anonymous
/databasename
Anonymous
если не ошибаюсь
Multistore Support
mongodb://<databasename>?
Anonymous
mongodb://127.0.0.1:27017/<databasename>
Multistore Support
mongodb://127.0.0.1:27017/<databasename>
а ip адрес не нужно менять?
Simon
а ip адрес не нужно менять?
ну если на локальной машине и бот и бд, то не надо
Multistore Support
Multistore Support
Не сработало почему то
Anonymous
покажи стрингу подключения
Multistore Support
Multistore Support
Спасибо
🦋noteee
Помогите пожалуйста составить запрос, что бы обновить 2 этих параметра. await db.Polling.updateOne({'chats.peerId': context.peerId}, {'$set': {'chats.$.countMessages': 3}}) — почему то не обновляет
Anonymous
просто $.countMessages
🦋noteee
а если без chats?
Исправил проблему. Вот так выглядит запрос, который работает: await db.Polling.findOneAndUpdate({'chats.peerId': context.peerId}, {'$set': {'chats.$.countMessages': vk.chats[index].countMessages+1}}, {new: true}) 1. Изменил updateOne > findOneAndUpdate 2. Добавил {new: true}
Anonymous
Крутой
🦋noteee
Крутой
Я не пытался сейчас показать "крутость". Я просто сообщил в чем была проблема. Возможно в дальнейшем это кому-то пригодится
Anonymous
Та я рофлю, не обращай внимание
🦋noteee
Понял 👌 😂
Mikhail
Anonymous
Alex
код для конверсии double в string. что подставить вместо new String, чтоб сконвертировать в Binary? db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) { x.bad = new String(x.bad); // convert field to string db.foo.save(x); });
artem
ребята смотрите мне нужно найти мою модельку app по name и инкрементировать quoutaCounter как это сделть?
Viktar
Поддерживается