Viktar
всем привет, как лучше ставить mongodb, из официального репозитория mongodb-org, или лучше percona server for mongo-db (бесплатно ли?)
у них есть разные плюшки. Посмотрите разницу и ставте что вам больше подходит
Timur
у них есть разные плюшки. Посмотрите разницу и ставте что вам больше подходит
Спасибо, уже проанализировал и сделал выбор в пользу percona server mongodb
jrm
Доброго времени суток! подскажите как мне обновить все данные в базе через updateMany? данный метод я использовал для обновления одной коллекций , может updateMany все поля, все коллекций обновить в базе?
Viktar
Но учтите, каждой записи проставится одно и тоже значение, если будет константа
jrm
Может.
можете по править я чет не пойму как ? const filterId = await this.extractValue(query, 'id'); const activeChange = await this.productModel.updateMany( { _id: filterId }, { $set: { active: false} }, ); вот мой метод я для определенного значения меняю поля
Viktar
В вашем случае. Проапдейтится только одна запись
jrm
В вашем случае. Проапдейтится только одна запись
да все верно , нужно чтоб вся база опдейтилась , подскажите как это реализовать
Viktar
updateMany({},{set....}) что то вроде этого. Всем записям проставит фалсе
Viktar
С телефона не очень удобно
Viktar
Всем это каждой записи коллекции
Viktar
Не затрите уже существующие значения
jrm
Всем это каждой записи коллекции
вы имеете ввиду ordered : false?
Viktar
Я имею ввиду, у всех записей станет одно значение в поле active
jrm
Я имею ввиду, у всех записей станет одно значение в поле active
извините я не правильно вопрос задал ,данный метод находит по id запись меня все active на false , мне нужно изменить или дописать этот метод , чтоб он принимал массив объектов и записал, в базу во все поля, обновил все поля в базе , я только могу по определенному ключу менять, нужно все поля полный update , я был бы рад если бы вы отправили ссылку где подробнее расписано как обновить все поля для всех записей updateMany , я пока не смог найти нужный туториал , за ранее спасибо)
Tishka17
Всем привет. Я пытаюсь сделать такой $lookup и чет не получается. В поле Compounds массив строк и руками в коллекции chembl.compounds я нахожу по этому полю нужные записи. А реально после такого лукапа в выборке пустой везде real_compounds { "from": "chembl.compounds", "localField": "Compounds", "foreignField": "id_chembl", "as": "real_compounds" }
Tishka17
Может есть какие-то особенности с лукапом по массиву? Или хз даже
Roman
Привет, а можно ли subsribe к ивентам когда добавляеться например документ? Сделать типо pubsub ?
CrusaderX
https://docs.mongodb.com/manual/changeStreams/
hex
по тутору kotlin fullstack webapp предлагается использовать org.litote.kmongo:kmongo-coroutine-serialization:4.1.1 , прилетает такая ошибка, фиксается поднятием версии до 4.2.7 Полдня убил на локализацию ошибки, сначала грешил на то что homebrew установлен в usr/local/ и mongodb устанавливалось из-за этого не туда, но нет, переустановил homebrew в opt/ (с последующей переустановкой mongodb), ситуация не изменялась
hex
hex
Artem
Аналог процедур/функций sql в монге?
Nick
Аналог процедур/функций sql в монге?
нет такого, как и триггеров. Монга не предполагает вынесение бизнес логики на сторону БД, поэтому и механизмов нет, все должно делать на стороне приложения
Artem
понял
Artem
спасибо
Антон
подскажите пожалуйста. есть таблица models и videos. нужно вытащить все models по определенным критериям и к ним одно последнее из videos. сейчас так $lookup: { from: 'videos', localField: '_id', foreignField: 'model_id', as: 'video' } но это выбирает все видео. не понимаю, как 1 видео ограничить
Ваня
У меня есть масив с _id и мне нужно сделать так, чтобы я отправлял с сервера уже массив полных объектов найденных по _id, можно ли такое сделать?
Vladislav
Mongoose
https://mongoosejs.com/docs/populate.html#population
Almaz
Всем привет хочу установить аутентификацию на MongoDB как это можно сделать?
Rustam
Привет всем Как пишется валидатор для полиформического типа? Например есть коллекция FEED с поле contentType (doc, poll) для doc один валидатор а для poll другой валидатор
Almaz
поменял --dbpath на другое, теперь не запускается приложение как вернуть его в значение по умолчанию?
Shokha
Добрый день хочу получить данные за этот день у меня такой запрос!
Shokha
вот в базе есть данные но результат пустой
Shokha
new ISODate тоже не помог
Shokha
а ты не перепутал местами даты?
я первый раз работаю с монгоДБ все возможно🙈
Shokha
поменял местами все равно пустой результат убрал остальные проверки тоже
Nick
Знак доллара пропущен $gt
Shokha
не получилось
Nick
И тут точно перепутано применение лт и гт местами
Nick
created_at какого типа в базе лежит?
Shokha
вот полный запрос
Vladislav
вот полный запрос
а где массив?
Nick
вот полный запрос
Проверяли что после лимита получается? Возможно там даты уже нет нужной
Shokha
а где массив?
какой массив?
Vladislav
какой массив?
aggregate принимает первым аргументом массив из объектов
Shokha
Shokha
aggregate принимает первым аргументом массив из объектов
{ $gt: new ISODate('2021-05-01T00:00:00.000Z'), $lt: new ISODate('2021-05-31T23:59:59.000Z') } если получить за месяц он работает же
Shokha
Так тогда что не так?
я хочу получить за день
Shokha
с 2021-05-23 00:00 до 2021-05-23 23:59
Nick
я хочу получить за день
Я спросил что не так, а не что хотите
Shokha
Я спросил что не так, а не что хотите
если указать за день он результат пустой говорить хотя в базе есть данные
Nick
если указать за день он результат пустой говорить хотя в базе есть данные
То что они есть в базе, не значит что они есть после стейджа с лимитом, проверьте что после лимита выдаются данные за нужный день
Nick
даже если убрать лимит не работает
Значит $first как вы думаете не совпадает с тем который в реальности попадается первым, смотрите на данные глазами после каждого стейджа
Nick
$last решил все но я не понял что делает $first что делает $last
Берут данные из первого/последнего встреченного документа соответственно. Порядок вычитки у вас не регламентирован (нет сортировки перрд гркппировкой) поэтому поведение непредскпзуемо и то что сработал ласт сейчас не означает что он сработает потом. Есть всякие другие функции по типу $min/$max для получения чегото более предсказуемого
Nick
Если вы хотите все записи за месяц, то матч ставите первым стейджем
Nick
Сначала фильтрация исходных данных, потом агрегация и потом уже доп фильтрации результатов агрегатов
Nick
$match значит доп фильтрация?
И пре и пост, в любом месте