Google
in можно передать в findOneAndUpdate?
Viktar
а почему нет? найдёт первый и проапдейтит
Viktar
но если честно, файндоне звучит странно, при работе с массивом ид
Bogdan
Leonid
Доброго дня. как в aggregation указать фильтр {"field": {$ne: {"endWith": "$.field2"}}} ?
Oleh
Leonid
Leonid
аналог js .toArray().filter(x=>!x.field.endsWith(x.field2)) . но мне нужен аггрегейшн фильтр
Nick
Leonid
Регуляркой
спасибо . это был мой запасной вариант. думал есть механизм проще
Nick
Sergey
не известно ли такого бага в Монге, как пустой массив в ответ на корректный запрос? почему корректный - ну, в нескольких тысячах случаев всё ок, а потом то ли нагрузка, то ли еще что - и получаем задвоение в базе
в коде четкий критерий - если получен пустой массив, то создать новый объект
примеров не привожу, слишком тривиально, просто вопрос - такое вообще возможно? другого ничего в голову не приходит...
Nick
Sergey
так тяжело судить, нужно разбираться во всем процессе и когда что у вас проверяется и создается, но в общем случае если у вас операция создания может инициироваться из двух разных потоков - то значит готовьтесь к дублям и ставьте уникальные индексы
отбой, нашел причину... от дублей у нас редис с локами, вызов локера был после запроса к базе - оно там ждёт, когда лок освободится, ну и не перепроверяет, что объект-то уже создан... ну то есть два потока проверили базу - получили зеленый свет, дальше второй застопорился на красном, дождался зеленого и зафигачил второй объект) просто последовательность вызовов поменять надо и всё. а индексы нет, не годятся, там "уникальности" как таковой нет, сложнее немного логика
Александр
Добрый вечер. Подскажите пожалуйста, почему match с датой не сработал? Должен был оставить все записи за вчера
Nick
Александр
Nick
в зависимости как вам надо выбирать
Denis
отбой, нашел причину... от дублей у нас редис с локами, вызов локера был после запроса к базе - оно там ждёт, когда лок освободится, ну и не перепроверяет, что объект-то уже создан... ну то есть два потока проверили базу - получили зеленый свет, дальше второй застопорился на красном, дождался зеленого и зафигачил второй объект) просто последовательность вызовов поменять надо и всё. а индексы нет, не годятся, там "уникальности" как таковой нет, сложнее немного логика
Звучит надежно
Melonges
как правильно документировать rest api для фронтендера?
Ilya
Vladimir
swagger
+ (в несте из коробки кстати довольно удобный)
Melonges
блять
Melonges
этот нест покоя не доет
Anonymous
Допустим у меня есть API, и мне нужно сделать ограничение обращений к нему. Скажем один юзер может использовать его только 10 раз в день. Мне же тогда нельзя делать findOne, делать проверку в коде, а потом увеличивать счётчик апдейтом. Потому что если там счётчик уже 9, приходит запрос, делается findOne, и пока в коде делается проверка, опять приходит запрос, а там у счётчика значение такое же — 9. Что в таком случае делать? Сразу findOneAndUpdate, и инкрементировать счётчик? Но тогда вроде проблема вылезет, если поменяется день, и нужно будет обнулить счётчик.
Vladimir
Допустим у меня есть API, и мне нужно сделать ограничение обращений к нему. Скажем один юзер может использовать его только 10 раз в день. Мне же тогда нельзя делать findOne, делать проверку в коде, а потом увеличивать счётчик апдейтом. Потому что если там счётчик уже 9, приходит запрос, делается findOne, и пока в коде делается проверка, опять приходит запрос, а там у счётчика значение такое же — 9. Что в таком случае делать? Сразу findOneAndUpdate, и инкрементировать счётчик? Но тогда вроде проблема вылезет, если поменяется день, и нужно будет обнулить счётчик.
ставь рейт лимитер на само приложение, есть такие возможности в экспрессе и несте.
и там дальше уже откручивай параметры
Anonymous
Vladimir
Александр
Dmitry
Привет! Если эксплейн запроса показывает использование индекса, а в профилировщике вижу этот запрос collscan как понять причины?
yopp
yopp
https://docs.mongodb.com/manual/reference/method/PlanCache.clear/#mongodb-method-PlanCache.clear
Dmitry
ага, а для понимания суть идеи - закешировлся колскан, а эксплейн не использует кеш?
nefertisu
Вопрос, если я использую монгу + ноду и хочу реализовать паттерн мвс, контроллером будут выступать методы привязанные к модели?
Oleh
Rus
подскажите как удалить в массиве объект
я это уже здесь спрашивал, но что то у меня все равно не получилось, сейчас приложу фотки и код
Rus
Rus
https://docs.mongodb.com/manual/reference/operator/update/pull/
вроде сделал как в док указано))
в чем может быть проблема?
Rus
Александр
Добрый день. Подскажите пожалуйста, как изменить поле _id, на name в $group ?
Bogdan
Александр
Melonges
Подскажите хостинг, облако хорошее для монги, кроме атласа
Nikita
А не подскажите в Mongobee можно миграцию делать не через джава классы, а через какие-то скрипты, джсоны и т.д.?
Nikita
или есть какие-то альтернативы Mongobee, которые позволяют это делать?
nefertisu
Хочу сделать выборку элементов
nefertisu
Типа
userData: { id , someOtherData}
и мне нужно в mongoose сделать поиск именно по айди
когда я указываю так
Project.find({
userData: {id:req.params.id}
})
то он ничего не находит
azabroflovski
nefertisu
нужное значение то которое id, а не _id
azabroflovski
nefertisu
Короче моя задача просто найти объект в массиве обектов, по одному параметру
yopp
yopp
И убедитесь что у вас params.id это не строка, а инстанс ObjectId
nefertisu
yopp
И https://docs.mongodb.com/manual/tutorial/query-array-of-documents/#query-an-array-of-embedded-documents
nefertisu
yopp
nefertisu
yopp
А какое значение params.id? usersId расположен в корне документа?
nefertisu
привел к такой записи не помогло
Забейте, я наклоунадничал, когда я ещё привёл к такой записи должно было заработать, просто я тестил на старой версии бека, где параметры почему-то не те запианы были и айдишник там был не такой же
nefertisu
Нужно найти всех юзерову которых айдишник будет соответствовать айдишникам юзеров на проекте
yopp
Google
Всем привет можете помочь как могу обновить данные через массив
User.findOneAndUpdate(
{ id: { $in: ['finfo1', 'finfo2', 'finfo3', 'finfo4'] } },
{
$push: {
user_connect_id: ['login---NEW---']
},
},
{ new: true, upsert: true, rawResult: true, multi: true }
)
Так у меня неработает
Google
Vadim
Всем привет, подскажите, как добавить проверку и запрет на удаление ссылаемого объекта из другой коллекций?
Vadim
Например если удалю шаблон из коллекций video, id этого видео сохранится в шаблоне channel
Vadim
и вернет null в последствий
Vadim
Но нужно чтобы он не давал удалять связанные данные
Vadim
Есть мысль в фун-ию удаления добавить вручную проверку с поиском id в коллекций channel, но быть может есть встренные методы?