Ilya
Каким образом решается?
Надо смотреть что у вас возвращает функция users , ошибка говорит что у вас там что то не то
𝕬𝖗𝖙𝖊𝖒
У меня такой вопрос, у кого есть явный пример подключения базы и работы с ней без участия shell? На локалхосте у меня все работает идеально, но вот тут не задача. Уже третий день копаюсь, обшарил весь интернет и всю документацию. Пробывал тремя разными рабочими вариантами. Может кто-то скинуть кусок своего кода или накидать мелкий пример как правильно подключиться к хосту и делать операции? Заранее спасибо.
Bro
robomongo
Bro
mongo compass
Bro
client = MongoClient(MONGODB_URI)
Bro
client.database_name.find_one()
𝕬𝖗𝖙𝖊𝖒
client.database_name.find_one()
Я тоже думал, что так легко)
𝕬𝖗𝖙𝖊𝖒
Тупо AuthorizeFailure
Daniil
Стоит думать, что вы передаёте неправильные login/password в connection string
Bro
https://docs.mongodb.com/manual/reference/connection-string
𝕬𝖗𝖙𝖊𝖒
𝕬𝖗𝖙𝖊𝖒
Кто знает почему?
yopp
Вы уверены что authentication database именно эта, а не admin?
yopp
Это указано в connection string или в инструкции mlab по подключению?
yopp
Проверьте логин, пароль и права у пользователя. Судя по чату у вас не первый раз проблемы с аутентификацией и авторизацией операций. Но если это бесплатный кластер, то я рекомендую использовать Atlas, к них инструменты лучше чем в mlab.
yopp
Можете ещё попробовать SSL включить
Serhii
всем привет, кто сталкивался, DocumentDB Aws не поддерживает geospatial indexes, если я правильно понял, какие инструменты можно заюзать для замены геопространственных запросов монги?
yopp
DocumentDB это не монга, это очень небольшой кусок интерфейса монги.
VSH
Привет , вопрос, что делает Unpopulate в монге
Dmitry
1. Точное имя кластера? У меня длиньше 2. У меня порт 27017 3. И включена SRV - все ок
𝕬𝖗𝖙𝖊𝖒
1. Точное имя кластера? У меня длиньше 2. У меня порт 27017 3. И включена SRV - все ок
Спасибо, уже не нужно) По совету одного из админов решил использовать Mongo Atlas
Dmitry
Да
Я к нему так подконнектиться и не смог, очень много букв в документации по миграции с млаба на атлас, тоже пошел по схожему пути
Nick
Привет , вопрос, что делает Unpopulate в монге
В самой монге такого нет, скорее всего это надстройка вашей одм/драйвера, так что вперед за документацией
Astgh
Добрый день Подскажите пожалуйста, есть ли в монге Primary key? Если да, то каким образом можно создать?
Nick
Добрый день Подскажите пожалуйста, есть ли в монге Primary key? Если да, то каким образом можно создать?
по умолчанию всегда единственный праймари кей _id и по нему всегда ест ьиндекс
Nick
можете добавлять отдельные ограничения на уникальность с помощью создания уникального инедкса https://docs.mongodb.com/manual/core/index-unique/
Astgh
Мне нужно связать две коллекции, можно это сделать с помощью индекса?
Astgh
Да
Nick
Мне нужно связать две коллекции, можно это сделать с помощью индекса?
это делается на уровне приложения, никаких внутренних механизмов в монге для этого нет, кроме транзакций
Astgh
Хорошо, спасибо большое
Alexander
Здравствуйте. Использую mongoose. Я уже когда-то давно задавал вопрос, как расширить схему новыми полями? Тогда мне ответили, что единственный способ - создать расширенную версию схемы, и пересохранить все старые документы как новые, в расширенную схему. То есть одно слить в другое. Это на самом деле звучит как костыль. Может быть сейчас имеется более оптимальный способ расширить старые документы новыми полями, и использовать новую схему?
Daniil
Существующую схему монгуса можно расширить в любой момент, добавить/удалить любые поля
Serhii
Добрый день, использую такую квери для поиска неких юзеров return await this.model.find({ _id: { $in: idx.map((el) => ObjectId(el) )}}).toArray() В случае, если коллекции нету, эта конструкция возвращает ошибку, как можно переписать квери, чтобы не делать лишних запросов?
Serhii
Can not read property map
Serhii
Коллекции нету
Nick
помойму это проблема чегото еще
Daniil
помойму это проблема чегото еще
Судя по всему у вас ошибка тут - idx.map((el) => ObjectId(el), потому что не определена переменная idx
Serhii
спасибо ребята)
Ilya
Приветствую. Есть ли возможность заставить монгу или мангус работать с большими числами? Дело в том, что я храню в поле большое число, и мне необходимо его суммировать. Храню я это число в строке, и, соответственно, не могу заставить драйвер складывать большое число в строке при помощи $inc или какого-нибудь другого оператора. С другой стороны, я никак не могу запрашивать существующее значение, складывать его у себя на сервере с новым значением и потом записывать в базу (по нескольким существенным причинам). Нашел библиотеку Mongoose-bignumber (которая как раз основана на использовании библиотеки bignumber.js, которую я использую), однако, как я понял, она тоже не способна помочь мне в данной ситуации.
Ilya
на сколько большие числа и только ли инкрементация нужна?
числа, которые могут превышать значение в 2^64 нужна исключительно инкрементация данных чисел
Ilya
верхний предел есть?
точно не могу сказать, но совершенно точно огромных значений с сотнями нулей принимать не будет
Nick
тогда только для этого случая, если вам действительно можно менять значения только в самой базе без возможности выгрузить к себе, то можете просто реализовать логику сложения с првоерками переполнения и хранением числа в двух лонгах старшем и младшем
Nick
если 4.2 то влоб с использованием агрегаций, на более ранних на кондишнах и доп вычислениях
Ilya
кешируйте
прощу прощения, а это как?
Nick
считайте на клиенте и периодически сохраняйте
Nick
хотя тут уместнее спросить что обрабатывается, что логически значат эти числа
Ilya
Понял, это вариант, но я еще бы рассмотрел способ с агрегацией, я недавно обновился до 4.2. Я вроде бы слышал, что появился оператор $set. фиксирующий результаты агрегации. Но смогу ли я в пайплайне осуществить сложение?
yopp
Если совместимости нет, но ваш язык поддерживает математику над большими числами, то вы можете посчитать и потом результата через extended json передать «сырой тип» строкой.
yopp
https://docs.mongodb.com/manual/reference/mongodb-extended-json/#Decimal128
yopp
Монга нативно умеет в математику с этим типом
Ilya
Почему?
Потому что иногда попадаются значения, которые выходят за рамки типа. К тому же так как идет суммирование значений, есть риск переполнения. Буквально утром тестировал
yopp
И какая семантика у хранимых чисел?
Ilya
Какой у вас верхний предел?
верхний передел точно не опеределен, но слишком уж больших значений, с сотнями нулей. тоже не будет
yopp
Я про семантику — что означает число, а не про тип
yopp
Но если вы не установили верхний предел, то у вас нет другого выхода кроме самостоятельной сериализации в любой удобный для вас тип: binary или string. Математика вся будет на стороне клиента.
yopp
Сортировки и прочие прелести потребуют отдельных усилий
yopp
Ещё можно поделить большое значение на несколько 64 битных чисел.
yopp
Но переполнение вам придётся опять руками