Bogdan
uptade, findOneAndUpdate
NO WAR!
Р00-👨🏻💻Михаил
Так непохоже на рабочий код
Р00-👨🏻💻Михаил
Надо делать так
Р00-👨🏻💻Михаил
{$push: { ‘acct.nick’: ‘1’, ‘acct.tag’: ‘1’ }}
Р00-👨🏻💻Михаил
Но для операции $push ОБЯЗАТЕЛЬНО иметь предопределенный массив или не сработает
NO WAR!
Р00-👨🏻💻Михаил
Нет
Р00-👨🏻💻Михаил
Тогда на худой конец делай проверку
Р00-👨🏻💻Михаил
if !chatUser.acct.nick
Р00-👨🏻💻Михаил
И делай там update с $set acct.nick: [‘1’]
Р00-👨🏻💻Михаил
Но лучше бы при insert предопределять, все-таки это скелет и у каждого объекта этот массив должен быть
NO WAR!
NO WAR!
Р00-👨🏻💻Михаил
Нарисуй JSON что ты хочешь видеть в базе в итоге
NO WAR!
Р00-👨🏻💻Михаил
Покажи, да
Р00-👨🏻💻Михаил
Я конечно особо в монгусе не силен пока что но по-моему тут должно быть вот так
https://stackoverflow.com/a/26008603
Р00-👨🏻💻Михаил
А то что ты хочешь сделать провалит валидацию априори
Р00-👨🏻💻Михаил
Потому что у тебя в валидации другая монгус модель
Но могу ошибаться
но скорее всего тебе нужны foreign key
Р00-👨🏻💻Михаил
Либо сократить валидацию до массива с объектами а не целой моделью если не хочешь отдельную коллекцию
Р00-👨🏻💻Михаил
const courseSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
users: [
{
name: { type: String, required: [true, "Name is required"] },
age: { type: Number, required: [true, "Age is required"] },
contact: { type: Number, required: [true, "Contact is required"] }
}
]
});
Р00-👨🏻💻Михаил
Поменяй вместо схемы закинь туда просто объект с полями
Р00-👨🏻💻Михаил
Думаю именно это неправильно
NO WAR!
Р00-👨🏻💻Михаил
И пуш уже делай так
$push: { acct: { nick: ‘123’, tag: ‘123' } }
NO WAR!
NO WAR!
NO WAR!
Р00-👨🏻💻Михаил
Р00-👨🏻💻Михаил
typeof
Р00-👨🏻💻Михаил
String или ObjectID?
Р00-👨🏻💻Михаил
Если String (а стопудово String) — {_id: ObjectId(user._id)}
NO WAR!
Р00-👨🏻💻Михаил
Выведи просто user._id
NO WAR!
Р00-👨🏻💻Михаил
Я могу серьезно ошибиться но попробуй {_id: String(user._id)}
Р00-👨🏻💻Михаил
Пробуй снести коллекцию
Р00-👨🏻💻Михаил
И будь уверен что софт тоже рестартанул
Р00-👨🏻💻Михаил
Есть ощущение что схема запомнилась такой какая она была изначально потому проебывается
NO WAR!
Хмм... Снес, запустил код, а она не появилась обратно. Буду копать. Но уже завтра, наверное. Сегодня уже сил нет.
Спасибо, добрый человек. 😀
Можно будет завтра, т.е. сегодня но уже утром, побеспокоить?
Р00-👨🏻💻Михаил
Р00-👨🏻💻Михаил
Р00-👨🏻💻Михаил
Р00-👨🏻💻Михаил
Воспроизвел - работает отлично так что пользуйся
Если у тебя все точно так же - проверь последовательности
NO WAR!
Р00-👨🏻💻Михаил
NO WAR!
😉
Anonymous
Всем привет! у меня вопрос , как можно сделать задержку на использование команды
Anonymous
например пользователь получил бонус а следующий только через 24 часа
Anonymous
Anonymous
питон
Anonymous
а в самом коде не вариант
Alexander
Записывать ид-шник пользователя и время получения бонуса, при запросе проверять что ттл не истек.
Anonymous
у меня дискорд бот
NO WAR!
На рабочий пример
Заработало после того как добавил User.save()
Видимо в этом и была проблема.
Еще раз спасибо. 🤝
Elinka22
NO WAR!
Пожалуйста
Рабочий [Разработка] ваш аккаунт?
Elinka22
NO WAR!
NO WAR!
На рабочий пример
Добрый день.
Заработало но не совсем. 😀
Если на момент старта кода в базе нет коллекции (дропнул ее по вашему вчерашнему совету), то при первом запуске кода выдает ошибку на скриншоте. При этом в Компасе вижу, что коллекция уже появилась, а в коллекции уже есть документ первого пользователя.
При втором запуске кода все срабатывает без ошибок. Что это может быть?
NO WAR!
NO WAR!
NO WAR!
Р00-👨🏻💻Михаил
Ну и внимательности побольше, это да
Andrey
коллеги, вопрос такой. Необходимо сменит схему всех документов в 1 коллекции, документов много, планировал экспортировать коллекцию в файл, и переструктурировать записи кодом, и после загрузить в базу обратно. Но свободных 12 tb - нет. В связи с этим возникла идея, выгружать через mongoexport блоками, условно по 10 млн, менять структуру, и загружать в новую коллекцию. Вопрос в чем, если в коллекцию не пишем сейчас, то можно ли быть уверенным, что mongoexport с опциями skip и limit - выгрузить так все документы, без пересечений. Можно ли быть уверенным что mongoexport корректно будет пропускать столько надо
Dmitry
коллеги, вопрос такой. Необходимо сменит схему всех документов в 1 коллекции, документов много, планировал экспортировать коллекцию в файл, и переструктурировать записи кодом, и после загрузить в базу обратно. Но свободных 12 tb - нет. В связи с этим возникла идея, выгружать через mongoexport блоками, условно по 10 млн, менять структуру, и загружать в новую коллекцию. Вопрос в чем, если в коллекцию не пишем сейчас, то можно ли быть уверенным, что mongoexport с опциями skip и limit - выгрузить так все документы, без пересечений. Можно ли быть уверенным что mongoexport корректно будет пропускать столько надо
В Mongo схема гибкая. Разные документы, могут быть с разными "схемами". Менятся все в базе без выгрузок. https://docs.mongodb.com/manual/tutorial/model-data-for-schema-versioning/
Dmitry
Andrey
Andrey
В том числе, в документам есть неизвестное количество полей начинающихся на x_. От них избавляемся, и переносим в array