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