Veaceslav
Фронт отдает запрос mongoose а там уже он работает с БД
Veaceslav
Nick
в этом сулчае вам не треубется в базе чтото делать
Nick
в схеме определяете дефолтное занчение и раотаете дальше
Gleb
Gleb
работать с этим свойством у объекта этой коллекции
Nick
Nick
Veaceslav
да
Такая же история и при удаление поля из БД ?
Nick
если конечно в монгусе за год ничего в этом плане не изменилось, но достаочно прочитать доку
Gleb
в зависимости от роута и от данных с фронта.
в данном примере нужно объеденить массив с новым элементом (создание). То есть, классический [...oldTags, newTag] в JS
Nick
Veaceslav
Nick
Nick
вообще пройдитесь по всем операторам в разделе https://docs.mongodb.com/manual/reference/operator/update-array/
Gleb
Gleb
А если на один роут приходит айдишник, и мне нужно либо добавить в массив, либо убрать (toggle) - это лучше средствами монги делать или через ноду делать просто 2 различных запроса в БД?
Gleb
$addToSet добавит только, если такой тег уже есть, но не удалит) Но мне тогда и убрать нужно)
Sergei
а есть аналог mlab но за бесплатно? а то они посчитали что я use for “production use” хотя я как раз использую при разработке
Veaceslav
Мужики подскажите плиз момент такой. Я использую микросервисы (думаю это важно) и при попытке сделать $push я почему-то получаю два значение (дубликаты в базе), я думал проблема в микросервисах, но нет, запрос приходит один раз ...
Veaceslav
Вот лог докера. "test" это вывод в console.log когда идет запрос на мутацию ... Он один, значит и попыток было ровно 1. В вот значение в array стало на 2 больше, хотя должно быть +1
Veaceslav
Вот что в базе ... даже микротиме один и тот же ...
Bandikoot
Veaceslav
Veaceslav
Nick
$addToSet
Veaceslav
У меня такая же проблема и с inc
Nick
не понял про inc
Gor
Gor
Veaceslav
Gor
это проблема схемы mongoose а не монги
Gor
выполняется экстра запрос им из-за того как схема описана. гуглить дальше именнов этом направлении
Gor
хотя может быть все же вариант многократного выхова обработчика(микросервиса)
Nick
банально отсутвует контроль содержимого и операции не идемпотентны, поэтому и такая херь. Если хотите балансить нагрузку, то организовывайте соответствующую обработку
Gor
Gor
я лично предпочитаю native driver
Nick
поэтому и говорю организовывайте проверки
Gor
да большая часть народа тестами даже не озабочивается, не говоря уже о валидации выполнения запросов)
Veaceslav
Gor
Veaceslav
Gor
ну только если ты отдельно еще сам не выводишь
Gor
и видишь что там $set?
Veaceslav
Хотя он вообще все запросы делает два раза ...
Gor
а у тебя $push в views да
Veaceslav
да
Gor
до дебаг - у тебя этого не выводило, значит таки реально 2 запроса в базу идет
Veaceslav
Veaceslav
Я просто не могу понять почему консоль показывает один раз test а база работает два раза ...
Veaceslav
Вот это мне не понятно
Veaceslav
Мужики помогите плиз понять что за фигня может быть
Gor
это в коде явно
Veaceslav
Короче я достал этот серсив на порт оттдельный... И присылаю чисто на него запросы, сейчас нету ничего до или после него, но такая же фигня ...
Veaceslav
Gor
на тестовом повторить можешь ?
Veaceslav
Я думаю что да... А есть писичница для этого ?
Veaceslav
Я могу zip кинуть всего этого
Veaceslav
тут мелкий сервис
Veaceslav
Может запустите у себя или как правильнее и удобнее ?
Gor
Не, это точно делать не буду. Код на гитхаб?
Veaceslav
Сейчас будет )
Veaceslav
Veaceslav
такая же история у category
Veaceslav
Там есть inc и он тоже два раза идет ...
Gor
дай угадаю при inc в саму категорию?
Gor
не в свойство а имено самой категории?
Veaceslav
views
Veaceslav
return CategoryModel.findByIdAndUpdate(id,
{$inc: {views: 1}},
{new: true}
)
Gor
ага
Veaceslav
ага
Это не правильно или как ?
Gor
нет еще ответа
Veaceslav
нет еще ответа
Надеюсь хоть кто-то тут сможет помочь решить это баг, первый раз такое вижу
Gor
вот вопрос