Nick
а собственно ошибка какая?
Andrey
$ node index.js (node:7832) UnhandledPromiseRejectionWarning: MongoError: Authentication failed. at E:\js\hotspot-dev-utils\node_modules\mongodb-core\lib\connection\pool.js:581:63 at authenticateStragglers (E:\js\hotspot-dev-utils\node_modules\mongodb-core\lib\connection\pool.js:504:16) at Connection.messageHandler (E:\js\hotspot-dev-utils\node_modules\mongodb-core\lib\connection\pool.js:540:5) at emitMessageHandler (E:\js\hotspot-dev-utils\node_modules\mongodb-core\lib\connection\connection.js:310:10) at Socket.<anonymous> (E:\js\hotspot-dev-utils\node_modules\mongodb-core\lib\connection\connection.js:453:17) at Socket.emit (events.js:189:13) at addChunk (_stream_readable.js:284:12) at readableAddChunk (_stream_readable.js:265:11) at Socket.Readable.push (_stream_readable.js:220:10) at TCP.onStreamRead (internal/stream_base_commons.js:94:17)
Nick
а юзерто такой есть куда подклчюаетесь?
Andrey
ну конечно, я с нативного клиента подключаюсь все хорошо, работает, с Го драйвера тоже работает
Nick
печальная ситуация тогда, походу вам прямая дорога к разрабам монгуса
Andrey
спасибо, так а тип для поля никак нельзя без монгуса задать при вставке, гуглил mongo insert specify type?
Nick
тип берется тот который будет в json и смапится в соотвевующий bson тип
Andrey
0.0 -> Int его третьим пакетом нужно оборачивать?
Andrey
чтобы в double замапить
Nick
передавайте привет джаваскрипту
Nick
тока вопрос зачем вам типы для чисел при работе с джаваскриптом?
Andrey
у меня основные микросервисы на го крутятся, там все в порядке, на js пишется утилита для заполнения бд как вспомогательная
Andrey
первый раз я заполнял монгусом, но он настолько туп что там нельзя в одном цикле схемы подменять (какие-то пляски были с delete), а это нужно и это нормально, потому что у доков может быть 10 одинаковых полей и 1 разное
Nick
не могу понять зачем разводить зоопарк если все делается на го
Andrey
все плохо с lodash/linq как там это еще назвать на js такие вещи за 2 минуты пишутся где надо смержить словари/массивы, транформировать в другие объекты
Nick
похоже не две минуты
Andrey
помогло добавление параметра ?authSource=admin
Nick
тогда вопрос про наличие юзера остается актуальным
Andrey
какого юзера?
Andrey
datars:PRIMARY> db.system.users.find() { "_id" : "admin.AvAdmin", "user" : "AvAdmin", "db" : "admin", "credentials" : {...}, "roles" : [ { "role" : "root", "db" : "admin" } ] }
Andrey
или нужен юзер для БД к которой обращаюсь? тогда остается вопрос как до этого работалось
Nick
а добавьте ему рутовую роль но с указание бд с которой подключаетесь
Nick
чисто для эксперимента
Vlad
Вечер добрый, столкнулся с проблемой, которую решить стало очень проблематично, ибо в коде ничего не менял, а работать он перестал :( Использовал Mongoose 5.3.3 (В связи с возможным багом перевел на 5.4.19, но ошибка не пропала) Выбивает вот такого типа ошибку
Vlad
Запрос у меня вот такого вида:
Vlad
yopp
4.0.6 (Feb 7) ◦ 3.6.11 (Mar 1) • Плейграунд для запросов: https://play.db-ai.co • Docs: https://docs.mongodb.com/manual/ • Learn MongoDB: https://university.mongodb.com Stable: 4.0.6 (https://docs.mongodb.com/manual/release-notes/4.0/#feb-7-2019) Bugfix: 3.6.11 (https://docs.mongodb.com/manual/release-notes/3.6/#mar-1-2019) Legacy: 3.4.20 (https://docs.mongodb.com/manual/release-notes/3.4/#mar-13-2019, EOL June ’19) End of life: 3.2.21 (Sep ’18), 3.0.15 (Feb ’18)
Max
Привет! Есть mongoose c таким конфигом: { reconnectTries: 30, reconnectInterval: 500, poolSize: Number(60) || 1, socketTimeoutMS: 2000000, keepAlive: true, }; пытаюсь собрать статистику по коллекции в несколько сот тысяч записей и запушить её в другую коллекцию - скрипт падает с ошибкой: ... ","stack":"MongoNetworkError: connection 4 t... Подскажите, пожалуйста, что можно затюнить что бы не валилось?
Max
Это разовая акция - первый сбор статистики - потом будет запускаться почасово, должно быть всё ок
Max
полностью ошибку скидывайте, так ничего не понятно
Сори, не скопировал полностью - в двух словах там таймаут
Nick
значит долго запросы отрабатывают, прфоилируйте ускоряйте
Max
значит долго запросы отрабатывают, прфоилируйте ускоряйте
вот запрос: https://gist.github.com/MaxVinogradov/263cc447be2be63c5e04fdae30e20cfe валится на lookup стейдже, может есть какие-то идеи как можно его затюнить?
Max
схема
Max
при чём схема запроса проста, я хз как посмотреть детальнее
Nick
схема
это в чем такая красота рисуется?
Nick
в rides есть индекс по driverUserId status ratings.driver.value createdAt
Nick
и что касается "$lt": [ "$createdAt", ISODate("2019-03-01T21:59:59.999Z") ]
Nick
вы игнорируете данные за целую милисекунду
Nick
надо указывать так же 22:00:00.000
Max
монга не хочет брать индекс в лукапе...
Max
для райдов
Slava
монга не хочет брать индекс в лукапе...
если выполните выражение которое в лукапе, просто через find() и оно попадает в индекс значит и в лукапе попадет, если нет, то необходимо перестроить запрос, на попадающий в индекс
Max
Переписываем уже
Nick
тогда в вашем случае лучше делать выборку из rides с услвоиями которые вам нужны, и к нему уже лукапить водителей
Max
Будем это вторым запросом мапить
Max
у меня тут такой вопрос - когда нужно делать ре-билд индексов?
Max
и что нам это даст?
Alexander
Нода монги в состоянии STARTUP2. Данные медленно копируются. Параллельно на другой том копирую rsync'ом с PRIMARY файлы. Копируются намного быстрее. Вот думаю - как скопируются файлы rsync'ом - остановить mongod, удалить из dataPath данные, и скопировать туда перенесённые rsync'ом и запустить снова mongod - должно же сработать, так?
Slava
Так и сделали. Монга как-то странно выбирает индексы
можете, подробнее описать, что значит "странно"?
Max
можете, подробнее описать, что значит "странно"?
Ну вместо составного индекса по нужным полям ей больше нравится индекс по одной записи - createdAt
Max
можете, подробнее описать, что значит "странно"?
Может это нормально, но для меня - странно
Max
+ я заглядываю в перформанс адвизор и смотрю какие индексы он предлагает
Gor
Это значит что запись сохранена в монго
Gor
Значит где то косяк в коде
Gor
А какой запрос посылаешь?
Gor
Ок что до и что после хочешь получить?
Gor
Структуру документа
Gor
$pull это ВЫтянуть. Тебе надо $push
Gor
Читай доки внимательнее
Gor
Хороший опыт, зацени . Вспоминай когда читаешь доку на функции и спецификации след раз
Gor
Да
Gor
Из масива
Gor
Скорее всего ты пытаешься сделать связь 1 к многим из другой таблицы?
Gor
Их можно комбинировать
Gor
Для начинающих - если в js простой обход масива через for
Gor
Ты же документ целиком выгружаешь не?
Gor
Вот js сом пройдись по объекту user и обработай favourites
Gor
А так читай $in
Gor
Потому говорю юзаю for цикл