Михаил Макарычев
Mira
Доброго времени суток. Подскажите с методом findOneAndUpdate у модели. Допустим, мне нужен update, я перезаписываю некоторые поля, но все остальные, которые я оставил без изменения идут - null. Как с этим бороться?
Mira
Если не ставлю status - то он в базе выглядит как null
🖤
Mira
🖤
То есть у меня это выглядит как
Item.findOneAndUpdate({name: req.params.name}, {$set:req.body})
.then(.....
Вроде нормально работает
Mira
Andrey
Добрый день! помогите плз в построении кластера! мозг уже кипит!
суть проблемы такова, что после запуска конфиг сервера и назначения ему primary, я включаю балансир и добавляю еще один RS но тогда балансир начинает орать нет Primary и валится к чертям
AstraSerg
Andrey
я уже не могу второй добавить, привелегии мастера ушли
Andrey
причем непонятно к кому
Andrey
второй slave в статусе other
Andrey
т.е. мне за раз два сервака добавить?
Andrey
или сразу арбитром второй объявить?
AstraSerg
обычно с этим проблем не было
AstraSerg
просто следуйте инструкции здесь: https://docs.mongodb.com/manual/tutorial/deploy-replica-set/
Andrey
спасиб, сча ознакомлюсь
Andrey
наверное заново перечитаю, что то я где то педалю
Andrey
хронология вроде бы та
Andrey
но и конфиг файлы у меня слабовато запускаются
AstraSerg
туториал рабочий
Andrey
и primary куда то бежит
Andrey
а можно опыта малех спросить?
Andrey
Вы как авторизацию организовали? на SSL? или x.509?
Andrey
именно безопасность самого кластера
yopp
вам не нужно в условии перечислять все поля
yopp
хватит _id
yopp
это уникальный идентификатор документа
yopp
collection.updateOne(eq("_id", user_id),
new Document("$set",
.append("first_name", first_name)
.append("last_name", last_name)
.append("username", username)
.append("Formatting", format)
.append("Sound notifications", sound)
.append("View links", view))
);
yopp
и в $set не добавляйте _id. это поле невозможно изменить
yopp
плюс постарайтесь не использовать ключи с пробелами и разным регистром
yopp
Stable: 4.0.2 (Aug 29, 2018) Bugfix: 3.6.7 (Aug 25, 2018), Legacy: 3.4.16 (Jul 10, 2018)
MongoDB quick overview/production notes: https://www.percona.com/live/e17/sites/default/files/slides/Running%20MongoDB%20in%20Production%20-%20FileId%20-%20115299.pdf
4.0.2: https://docs.mongodb.com/manual/release-notes/4.0/#aug-29-2018
3.6.7: https://docs.mongodb.com/manual/release-notes/3.6/#aug-25-2018
3.4.16: https://docs.mongodb.com/manual/release-notes/3.4/#jul-10-2018
3.2.20: https://docs.mongodb.com/manual/release-notes/3.2/#may-10-2018 (End of life: September 2018)
3.0.15: Support ended February 2018 (Last release May, 2015)
Nan0
я просто не пойму, что не так с оформлением
yopp
первый аргумент в updateOne это условие, по которому надо найти документ для изменения
yopp
если вы знаете _id, используйте его там
yopp
второй аргумент — трансформации документа
yopp
вам туда нужно вставить поля которые вы хотите изменить
yopp
Прочитайте разделы Introduction и CRUD
https://docs.mongodb.com/manual/introduction/
https://docs.mongodb.com/manual/crud/
yopp
там чтива на полчаса
yopp
если вы обновляете несколько полей в одном документе, то эффективнее это делать одним запросом
ᅠ ᅠ ᅠ ᅠ
то есть полностью я прописал так:
collection.updateOne(eq("_id", user_id), new Document("$set", new Document("Formatting", format)));
collection.updateOne(eq("_id", user_id), new Document("$set", new Document("Sound notifications", sound)));
collection.updateOne(eq("_id", user_id), new Document("$set", new Document("View links", view)));
yopp
во второй документ со списком модификауиы, в ключ $set вы можете добавить больше одного поля
yopp
collection.updateOne(eq("_id", user_id),
new Document("$set",
new Document("Formatting", format),
new Document("Sound notifications", sound),
new Document("View links", view)
)
);
yopp
тьфу
yopp
там append
yopp
collection.updateOne(eq("_id", user_id),
new Document("$set",
new Document()
.append("Formatting", format)
.append("Sound notifications", sound)
.append("View links", view)
)
);
yopp
я плохо на java говорю
ᅠ ᅠ ᅠ ᅠ
да-да, получилось так
collection.updateOne(eq("_id", user_id), new Document("$set", new Document("Formatting", format).append("Sound notifications", sound).append("View links", view)));
yopp
👍
ᅠ ᅠ ᅠ ᅠ
еще раз, спасибо
Denys
Denys
всем привет, подскажите пожалуйста, с монго работаю неделю) ловлю ошибку при npm run start:
при npm run start:dev все отлично
AstraSerg
Что это за $ между чеклутлист и актив?
Denys
в интернете нашел)
Anonymous
Denys
мне приходят данные и надо обновить их в обьекте)
AstraSerg
А ну так просто уберите $
AstraSerg
Все ключи через точку
AstraSerg
В смысле вложенность. Почитайте про дот-нотацию
Denys
...,
checkoutList: [
{
...,
active: false
}
] такая вложенность получается
Denys
из-за того, что чекаут лист массив, я и нашел, что надо ставить доллар
Denys
ну вот, то что пишут за дот нотацию
Denys
Denys
не находит
Denys
и ошибок нету
Denys
подскажите, пожалуйста
Denys
https://docs.mongodb.com/manual/reference/operator/update/positional/#negations
вот откуда доллар, но почему он работатет в дев режиме, а в продакшен нет??!!
AstraSerg
Извините, не у компа сейчас
Denis
Всем привет! Подскажите в монге есть какие то подключения к реплика сетам?
Дмитрий
Дмитрий
Какие-то есть. Как-то подключаются