Максим
нужно в etc/hosts прописать что mongo1 mongo2 mongo3 это 127.0.0.1
И что? Чем это отличается от локалхост?
Назар
И что? Чем это отличается от локалхост?
"members" : [ { "_id" : 0, "host" : "mongo1:27017" }, { "_id" : 1, "host" : "mongo2:27017" }, { "_id" : 2, "host" : "mongo3:27017" } ] Как это должно работать?
Назар
Вот же хостнейм прописывается
ну я в docker не силен. Вроде как минимум network еще должен быть и то не факт, что будет работать так.
Максим
Делал и с нетворком нифига не получилось
Максим
Чтото я гдето упускаю
Назар
завтра найду свой докерфайл и hosts. Там рабочая версия, сам пол дня ковырял, пока запустилось нормально
Максим
кароч победил я эту фигню вроде был
Wassilevs
--bind_ip_all параметр попробуй
Максим
если интересно сделал кластер по этой доке https://www.mongodb.com/compatibility/deploying-a-mongodb-cluster-with-docker
Максим
но минус в том что через докер а не композ
Максим
поэтому вот так
Максим
законнектился
Максим
ща проверю делает ли миграцию призма и спать уф
Максим
бляха муха работает!
Максим
спасибо всем причастным. Если есть идеи как переписать это в docker composе плез черканите. Блин я уже отчаялся, доступа к атласу нет, а для призмы нужен обязательно репликасет чтобы миграции откатывать
Максим
Fat
Всем привет, подскажите. Есть такой список файлов бд, как из него вытянуть инфу что это за база данных? Лежит дамп, а что за он понять никак не можем
Андрей
Очевидно, что поднять СУБД на этом дата каталоге.
Андрей
С дампом это ничего общего не имеет. Это копия дата каталога.
MaxSMoke | Beware of SMoke
Приветствую. Мне нужно сохранить json обьект в бд, но проблема что в обьекте есть функции, которые мне нужны. Через find их не видно, они не записываются или их не видно?
MaxSMoke | Beware of SMoke
Да, возможно странный вопрос, понимаю
MaxSMoke | Beware of SMoke
лучше даже переформулирую, можно ли хранить js функции в mongo?
Nick
лучше даже переформулирую, можно ли хранить js функции в mongo?
функции объектов js напрямую нельзя, нужно их в текст трансформировать, а после загрузки соответственно перевести из текста в код. Все это не имеет отношения к монге и лежит только в плоскости js
Nick
Приветствую. Мне нужно сохранить json обьект в бд, но проблема что в обьекте есть функции, которые мне нужны. Через find их не видно, они не записываются или их не видно?
но лучше скажите почему так поулчилось, что вы вместо использования нормального кода хотите его через БД передавать
MaxSMoke | Beware of SMoke
но лучше скажите почему так поулчилось, что вы вместо использования нормального кода хотите его через БД передавать
Я по просту не знаю как мне реализовать это, у меня есть обьект юзера и мне нужны методы в этом-же обьекте для удобства
MaxSMoke | Beware of SMoke
в идеале это должен быть класс, но его никак не сериализируешь
MaxSMoke | Beware of SMoke
в целом, это само по себе бредово
Nick
Я по просту не знаю как мне реализовать это, у меня есть обьект юзера и мне нужны методы в этом-же обьекте для удобства
так вы делаете класс юзера, у него поля с каимито значениями и рядом функции. В базу сохраняются поля, при вычитке из бд создается новый объект класса и ему в поля назначаются значения из бд, а поведение определено как раз описанием класса и его методами
Nurlan
в целом, это само по себе бредово
в js просто fn.toString превращает в строку контекст функции obj={a:()=>123}; obj.a.toString() == '()=>123'
MaxSMoke | Beware of SMoke
а наоборот можно через eval
MaxSMoke | Beware of SMoke
облом
MaxSMoke | Beware of SMoke
в общем, не выйдет, так как у меня функции, требующие параметры
Nick
в общем, не выйдет, так как у меня функции, требующие параметры
не занимайтесь этим, база для данных, т.е. значений полей, а поведение (функции) должны быть в коде и ваша задача лишь гонять значения полей в бд и восстанавливать их оттуда
MaxSMoke | Beware of SMoke
это я знаю, а с методами что мне блин делать
MaxSMoke | Beware of SMoke
я не понимаю, у меня 21:17, мозги "на бикрень" лезут
Nick
я не понимаю, у меня 21:17, мозги "на бикрень" лезут
тогда отложите, вы думаете не в том направлении
MaxSMoke | Beware of SMoke
тогда отложите, вы думаете не в том направлении
и все таки, вот класс у меня, образный пример. собственно как мне хранить таких юзеров?
MaxSMoke | Beware of SMoke
ладно если сами параметры, это легко new Template("MaxSMoke", 393830101) -> Template { nick: 'MaxSMoke', vkID: 393830101, money: 0, car: null, phone: null, pet: null, isBanned: false, banReason: null }
MaxSMoke | Beware of SMoke
а как мне собственно методы добавлять к юзерам? Даже если обьектом а не классом хранить(тут значения особо не имеет) то придется использовать for, что КРАЙНЕ нежелательно
MaxSMoke | Beware of SMoke
я боюсь for как огня, так как скорость работы падает в разы
MaxSMoke | Beware of SMoke
В общем, спасибо Nick и Nurlan за помощь
MaxSMoke | Beware of SMoke
придется изобретать новую реализацию для моей идеи, с 0
Nick
я боюсь for как огня, так как скорость работы падает в разы
For бояться глупо, думать о производительности до того как сделано чтото работабщее тоже не лучшая стратегия
MaxSMoke | Beware of SMoke
Не понимаю проблему, инстанциировали объект класса через new и у него все методы класса же есть
хм а что если... Сделать больше параметров конструктора, и в них писать данные с бд, это и решает проблему с регистрацией, т.к большинство параметров будет null при регистрации
MaxSMoke | Beware of SMoke
но опять таки for придется применять
Константин
Всем привет, кто может подсказать с таким вопросом. Имеется следующий запрос, который возвращает документ который мы нашли по _id и внутреннюю коллекцию TEST, которая имеет в себе найденный такой же объект по условию. Необходимо чтобы результат был в в виде двух отдельных документов, как это можно сделать?
Nick
Всем привет, кто может подсказать с таким вопросом. Имеется следующий запрос, который возвращает документ который мы нашли по _id и внутреннюю коллекцию TEST, которая имеет в себе найденный такой же объект по условию. Необходимо чтобы результат был в в виде двух отдельных документов, как это можно сделать?
первое что пришло в голову - нужно в полученный массив TEST добавить пустой объект, чтобы стало два дока. Потом $unwind и потом $replaceRoot с условием вытащить на верхний уровень возможно еще через $facet както можно сделать, но думаю чем париться проще в коде все это делать
Nick
Так же должно заработать? Или это неверно?
тип того, но мерж он оставит поля от рута если их нет в $TEST, поэтому надо $$ROOT обернуть в $cond и условие например что нет поля _id в TEST
Daniil
Ни у кого нет проблем с атласом? У меня пару часов не подключается к бесплатному кластеру, прод-кластер при этом в норме, поддержка молчит, на статус-пейдже сегодня был инцидент, но сейчас типа все ок
Oleksiy
Кто-нибудь может подсказать вот что. У меня в Mongoose схеме явно не определен _id, чтобы он добавлялся автоматически. Но при попытке сохранитьь документ, соответствующий этой схеме, выскакивает ошибка: MongooseError: document must have an _id before saving Что здесь не так?
Oleksiy
Покажи схему и что ты в неё пихаешь
схема в файле, передаю вот так: const order_extra_data = new OrderExtraData({ provider, bc_order_id, bc_cart_id, application_id, uid, customer_data: { first_name, last_name, email }, shipping_options }); await order_extra_data.save(); вот эти данные: { provider: 'paytomorrow', bc_order_id: 841, bc_cart_id: 'acb8f162-54d5-4bba-96e8-5c442cbd8a50', application_id: '6a80ecf41bcc444ebaa48add1c1d5772', uid: '4562231d3ec4c0c7cbaa7232', customer_data: { first_name: 'Alex', last_name: 'Musiyezdov', email: 'omusiyezdov@rightandabove.com' }, shipping_options: [ { sku: 5712483, store_id: '609', selected_store: [Object] } ] }
-
За место Save
Oleksiy
По пробуй create
Пишет: TypeError: order_extra_data.create is not a function
-
await OrderExtraData.create({ provider, bc_order_id, bc_cart_id, application_id, uid, customer_data: { first_name, last_name, email }, shipping_options })
Oleksiy
await OrderExtraData.create({ provider, bc_order_id, bc_cart_id, application_id, uid, customer_data: { first_name, last_name, email }, shipping_options })
Этот вариант всё равно выдает: MongooseError: document must have an _id before saving
-
А какая у вас версия Mongoose?
Oleksandr
Этот вариант всё равно выдает: MongooseError: document must have an _id before saving
Ну пока не решится можно сделать затычку в виде const order_extra_data = await new OrderExtraData({ _id: Types.ObjectId(), provider, bc_order_id, bc_cart_id, application_id, uid, customer_data: { first_name, last_name, email }, shipping_options }).save();
Oleksandr
Но по идее должно само генерировать
Oleksandr
Затычка тоже не работает. Но да, должно само генерировать.
Даже когда явно передаешь id - всё равно та же ошибка?
Alex
Ребят, есть такое, что MongoDB Aggregate на NodeJS выдаёт данные чуть ли не в рандомном порядке, хотя стоит sort {_id: -1}. Если запрашивать точно такую же аггрегацию, например, в MongoDB Compass, то там всё хорошо. В чём может быть проблема?
Alex
Как вы определяете порядок в результате в коде?
Очевидно, что данные идут не в том порядке, в котором они заносились в базу
Daniil
проверил, работает. мск
С утра заработало само собой)