Google
in можно передать в findOneAndUpdate?
Viktar
а почему нет? найдёт первый и проапдейтит
Viktar
но если честно, файндоне звучит странно, при работе с массивом ид
Leonid
Доброго дня. как в aggregation указать фильтр {"field": {$ne: {"endWith": "$.field2"}}} ?
Oleh
Доброго дня. как в aggregation указать фильтр {"field": {$ne: {"endWith": "$.field2"}}} ?
Привет, если я правильно помню в aggregation 1й параметр это фильтр
Leonid
Привет, если я правильно помню в aggregation 1й параметр это фильтр
все верно. у меня не получается сделать нужный мне фильтр.
Oleh
все верно. у меня не получается сделать нужный мне фильтр.
Соре, тогда наверно лучше подождать знатоков, я не эксперт в кастомных квери
Leonid
аналог js .toArray().filter(x=>!x.field.endsWith(x.field2)) . но мне нужен аггрегейшн фильтр
Leonid
Регуляркой
спасибо . это был мой запасной вариант. думал есть механизм проще
Nick
спасибо . это был мой запасной вариант. думал есть механизм проще
Увы работа с текстом в монге заканчивается на регулярках
Sergey
не известно ли такого бага в Монге, как пустой массив в ответ на корректный запрос? почему корректный - ну, в нескольких тысячах случаев всё ок, а потом то ли нагрузка, то ли еще что - и получаем задвоение в базе в коде четкий критерий - если получен пустой массив, то создать новый объект примеров не привожу, слишком тривиально, просто вопрос - такое вообще возможно? другого ничего в голову не приходит...
Sergey
так тяжело судить, нужно разбираться во всем процессе и когда что у вас проверяется и создается, но в общем случае если у вас операция создания может инициироваться из двух разных потоков - то значит готовьтесь к дублям и ставьте уникальные индексы
отбой, нашел причину... от дублей у нас редис с локами, вызов локера был после запроса к базе - оно там ждёт, когда лок освободится, ну и не перепроверяет, что объект-то уже создан... ну то есть два потока проверили базу - получили зеленый свет, дальше второй застопорился на красном, дождался зеленого и зафигачил второй объект) просто последовательность вызовов поменять надо и всё. а индексы нет, не годятся, там "уникальности" как таковой нет, сложнее немного логика
Александр
Добрый вечер. Подскажите пожалуйста, почему match с датой не сработал? Должен был оставить все записи за вчера
Nick
в зависимости как вам надо выбирать
Melonges
как правильно документировать rest api для фронтендера?
Vladimir
swagger
+ (в несте из коробки кстати довольно удобный)
Melonges
блять
Melonges
этот нест покоя не доет
Anonymous
Допустим у меня есть API, и мне нужно сделать ограничение обращений к нему. Скажем один юзер может использовать его только 10 раз в день. Мне же тогда нельзя делать findOne, делать проверку в коде, а потом увеличивать счётчик апдейтом. Потому что если там счётчик уже 9, приходит запрос, делается findOne, и пока в коде делается проверка, опять приходит запрос, а там у счётчика значение такое же — 9. Что в таком случае делать? Сразу findOneAndUpdate, и инкрементировать счётчик? Но тогда вроде проблема вылезет, если поменяется день, и нужно будет обнулить счётчик.
Александр
Dmitry
Привет! Если эксплейн запроса показывает использование индекса, а в профилировщике вижу этот запрос collscan как понять причины?
yopp
https://docs.mongodb.com/manual/reference/method/PlanCache.clear/#mongodb-method-PlanCache.clear
Dmitry
ага, а для понимания суть идеи - закешировлся колскан, а эксплейн не использует кеш?
nefertisu
Вопрос, если я использую монгу + ноду и хочу реализовать паттерн мвс, контроллером будут выступать методы привязанные к модели?
Vladimir
Вопрос, если я использую монгу + ноду и хочу реализовать паттерн мвс, контроллером будут выступать методы привязанные к модели?
Вообще ссылками отвечать не оч, но вот тут правда очень доходчиво написано, даже если в итоге не это будет не нест, все равно представление получить можно самое отличное. https://docs.nestjs.com/techniques/mvc
Rus
подскажите как удалить в массиве объект я это уже здесь спрашивал, но что то у меня все равно не получилось, сейчас приложу фотки и код
Rus
Rus
https://docs.mongodb.com/manual/reference/operator/update/pull/ вроде сделал как в док указано)) в чем может быть проблема?
Rus
?
Александр
Добрый день. Подскажите пожалуйста, как изменить поле _id, на name в $group ?
Александр
$project, $addFields
Спасибо)
Melonges
Подскажите хостинг, облако хорошее для монги, кроме атласа
Nikita
А не подскажите в Mongobee можно миграцию делать не через джава классы, а через какие-то скрипты, джсоны и т.д.?
Nikita
или есть какие-то альтернативы Mongobee, которые позволяют это делать?
nefertisu
Хочу сделать выборку элементов
nefertisu
Типа userData: { id , someOtherData} и мне нужно в mongoose сделать поиск именно по айди когда я указываю так Project.find({ userData: {id:req.params.id} }) то он ничего не находит
nefertisu
_id _id: req.params.id
Не находит на самом монге это выглядит вот так
nefertisu
нужное значение то которое id, а не _id
nefertisu
пардон, объект казался другим
Да наверное это я плохо объяснил просто
nefertisu
Короче моя задача просто найти объект в массиве обектов, по одному параметру
yopp
Типа userData: { id , someOtherData} и мне нужно в mongoose сделать поиск именно по айди когда я указываю так Project.find({ userData: {id:req.params.id} }) то он ничего не находит
Укажите через dot notation: usersId._id. Когда вы передаёте в условии словарь, то монга сравнивает элемент массива со всем словарём из условия
yopp
И убедитесь что у вас params.id это не строка, а инстанс ObjectId
yopp
а можно пример такой записи, не совсем понял
https://docs.mongodb.com/manual/core/document/#dot-notation
yopp
И https://docs.mongodb.com/manual/tutorial/query-array-of-documents/#query-an-array-of-embedded-documents
nefertisu
https://docs.mongodb.com/manual/core/document/#dot-notation
привел к такой записи не помогло
yopp
привел к такой записи не помогло
Скорее всего req.params.id — строка. А в документе у вас ObjectId. Вам нужно привести строку к oid
nefertisu
Скорее всего req.params.id — строка. А в документе у вас ObjectId. Вам нужно привести строку к oid
Да я вот сейчас пытаюсь нагуглить как привести к обжектАйди, но суть в том чт пол проекта сравнивает просто через _id:req.params.id и всё работает
nefertisu
Вероятнее всего просто new ObjectId(params.id)
Без разницы, на выходе пустой массив
yopp
А какое значение params.id? usersId расположен в корне документа?
nefertisu
привел к такой записи не помогло
Забейте, я наклоунадничал, когда я ещё привёл к такой записи должно было заработать, просто я тестил на старой версии бека, где параметры почему-то не те запианы были и айдишник там был не такой же
nefertisu
привел к такой записи не помогло
ещё вот тут проблема была решена, спасибо
nefertisu
А какое значение params.id? usersId расположен в корне документа?
Не могли бы ещё тут подсказать, задача та же только более сложная
nefertisu
Не могли бы ещё тут подсказать, задача та же только более сложная
раньше юзерс айди был просто массивом строк, а теперь это массив объектов
nefertisu
Нужно найти всех юзерову которых айдишник будет соответствовать айдишникам юзеров на проекте
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, но быть может есть встренные методы?