Вася
каким запросом получить Один последний элемент. если findOne находит первый, то как получить последний
Sardor
Можно по _id отсортировать и взять первый
Lev
bind_ip, железный/софтовый файрвол
Оно иногда работает, а иногда нет
Андрей
Что лог СУБД и апликухи говорят при неудачном подключении?
Roman
Ошибка эта значит, что в вашем replica set не нашлось primary. Попробуйте через консоль зайти на сервер и посмотреть, если ли primary, и проверьте, что ваше приложение коннектится к реплика сету, а не к отдельной реплике
Roman
А у вас база где создана, в atlas?
Lev
Да
𝕯𝖆𝖓𝖎𝖑𝖆
гайз, можно как-то отправить документ на сервер монги, чтоб определенные поля зашифровались в какой-нить md5? именно чтоб на стороне сервера монги выполнилась функция
Roman
Да
Тогда в атласе щелкаете кнопку connect, там connect with mongo shell, копируете это в консоль, меняете имя базы, и коннектитесь. А затем, когда приконнектитесь, вводите команду rs.status() и смотрите, есть ли шард с stateStr "PRIMARY"
Lev
Да, есть
Lev
Vsevolod
Подскажите, вот этот запрос возвращает ошибку: Updating the path 'enqs' would create a conflict at 'enqs' (40) (on mongo:27017, legacy retry, attempt 1) {"$push"=> {"enqs.0.qops"=>{"$each"=>[{"_id"=>BSON::ObjectId('5f27e6f99551e802b12ec627'), "lbl"=>{"en"=>"Not sure"}, "u_at"=>2020-08-03 10:29:13 UTC, "c_at"=>2020-08-03 10:29:13 UTC}]}, "enqs"=> {"$each"=> [{"_id"=>BSON::ObjectId('5f27e6f99551e802b12ec628'), "uitp"=>:checkbox, "lqst"=>{"en"=>"A u ok?"}, "req?"=>false, "ico?"=>false, "u_at"=>2020-08-03 10:29:13 UTC, "c_at"=>2020-08-03 10:29:13 UTC}]}}} Это из-за того, что тут одновременно обновляется одна и таже запись enqs.0?
Roman
Да, есть
А какой connection string используете в своем приложении?
Lev
mongodb+srv://login:password@cluster0.ipu5k.gcp.mongodb.net (вместо login и password логин и пароль)
senpos
Поделитесь примерном того как в aggregation делать lookup на основе другого lookup. Пример моих данных и того, что я хочу получить: https://nekobin.com/lilaqopawo.js Задача: посчитать количество постов, с группированных по ID гильдии (автор может быть в одной гильдии). С этим просто. db["Posts"].aggregate([ { $lookup: { from: "Authors", localField: "authorId", foreignField: "_id", as: "author", }, }, { $unwind: "$author" }, { $group: { _id: "$author.guildId", count: { $sum: 1 }, }, }, { $sort: { count: -1 } }, ]); А вот как получить еще и название гильдии - непонятно. То есть, мне нужен еще один лукап по $author.guildId.
senpos
Если что непонятно описал - спрашивайте, когда в голове это все прокручиваешь с контекстом - кажется что просто. А это может быть не так))
Roman
$lookup: { from: "Guilds", localField: "_id", foreignField: "_id", as: "guild", } Вот так не сработает?
Roman
Да
senpos
Да
Получилось, спасибо!
Lev
А какой connection string используете в своем приложении?
Есть предположения, в чем может быть проблема?
Roman
Есть предположения, в чем может быть проблема?
Сложно сказать. В интернете пишут, что такое может быть, если айпи не в whitelist
Lev
Ну оно же иногда подключается
Lev
К тому же, это же через Atlas
Владимир Т
Здравствуйте. Можно ли ускорить работу mongorestore? таблица 1 млрд доков, размер 35 Гб, ресурсы сервера особо не кушает, лопатит с прошлой среды. Чтото не так, или норм?
Владимир Т
Владимир Т
Сегодня 2% за день
Владимир Т
🤣
Daniil
он вроде тупо последовательно вычитывает и вставляет доки
Владимир Т
Странное различие по времени при создании дампа и его восстановлении
Victor
Всем привет! Кто из Украины есть и может проконсультировать(платно) по созданию запроса на Mongoose?
Андрей
Странное различие по времени при создании дампа и его восстановлении
Железо чем-то отличается, куда ресторится, от исходного, откуда дампилось?
Андрей
Что по очереди на дисках?
Roman
Вставляю данные в базу потом делаю findOne. И возвращается старая запись. Как исправить? Монгус
Roman
у меня есть в базе юзер и у него есть карта при ее повторном сохранении (карты юзера) она перезатирается. Потом я делаю файнт этой карты по юзер айди а мне возвращается старая запись, хотя в базе данные обновляются
Roman
Читаете оттуда же, куда пишется? 🙈
данные перезаписываю потом читаю
Roman
а я данные обновляю через update а потом читаю
Андрей
Сингл или кластер?
Roman
Сингл или кластер?
не кластер а локальная база
Roman
это исключено, я делаю 2 отдельных запроса через постмен 1. обновляю 2. проверяю
Roman
это findOneAndUpdate присутствует в коде
Daniyar
зачем обновлять и потом кидать запрос на findone
Roman
браузер может кешировать?
Daniyar
или я не понял проблему...
Roman
тут логики много завязано, долго вникать вам предется, сейчас упрощу для понимания
Roman
я узер и я хочу призявать карточку есть 2 запроса 1. payment если карточка уже есть то ее создаем, если уже есть то обновляем 2. проверка findCardByUseriD —-> old data приходит
Roman
вся проблема
Daniil
вся проблема
Проблема в том, что если все сделано правильно, то и работать будет правильно
Daniil
Где то в вашей «много логики» допущена какая то ошибка и вы ее не замечаете
Daniil
Нужно дебажить запросы
Wjatscheßlavvee
Ну в теории все должно работать штатно. Звучит как рабочий вариант) Я думаю тут и правда без куска кода не обойтись с этими последовательными запросами
Serhii
привет ребят. поясните нормально плиз, че делает метод populate и execPopulate?
Nemo
популят ложит заместь ссылки на другую схему . в 1 схеме ложит обьект 2рой схемы
Nemo
допустим есть новость и автор схемы. в новости есть ссылка на автора. при популяте. и выборке с бд у тебя будет в обьекте новость. содержатся обьект автора
Nemo
народ в монге есть же автоинкремент. что по умолчанию там будет новости например айди давать от 1
Vasily
Всем привет! Хотим сменить одну из баз с mongoDB на PSQL Чтобы примерно оценить (очень примерно) объем который понадобится для PSQL как лучше поступить? Насколько адекватный это подход: Допустим mongo весит 1ТБ Я примерно посмотрел по данным которые мы собираем в mongoDB из сторонних PSQL и понял что в исходных БД таблицы занимают меньше, около 65% от размера коллекций в mongoDB Поэтому делаю вывод что нам понадобится около 650ГБ для хранения данных, которые в монге занимали 1ТБ
Nick
Может статься так что поедете обратно на монгу