Anonymous
DeprecationWarning: The reconnect event is no longer supported by the unified topology, please read more by visiting http://bit.ly/2D8WfT6 по ссылке нету ни слова про reconnect. чем заменить?
Anonymous
client.on('reconnect', () => { info('☺️ MONGO CONNECTING AGAIN'); });
Anonymous
на это ругается
Svatov
всем привет, друзья подскажите, пожалуйста, как оптимально сделать query например есть в коллекции документы с полями 12345 1234 123 123 12 на входные данные например 123456789 и надо найти ближайший документ который совпадает больше всего, в данном случае например 12345
Сергей
Ребят, подскажите, как достать только те видео у которых date больше сегодняшней?
Сергей
Semeon
yes
А что за тема такая симпатичная?
Semeon
Извиняюсь за оффтоп
Сергей
Сергей
А что за тема такая симпатичная?
Хелпани пож с задачкой
Dmitriy
Ребят, подскажите, как достать только те видео у которых date больше сегодняшней?
по идее именно так как у вас написано, а что сейчас возвращается и как данные храняться в базе?
Сергей
по идее именно так как у вас написано, а что сейчас возвращается и как данные храняться в базе?
Хранятся объекты, вот ответ. Почему то возвращает все которые есть
Semeon
Хелпани пож с задачкой
В каком формате хранится дата? Timestamp? new Date() в таком виде возвращает ISO, если что
Mike
Разве один документ из подколлекции можно получить?
Dmitriy
можно через filter в АФ
Dmitriy
просто запросом вы не получите один элемент массива
Dmitriy
https://docs.mongodb.com/manual/reference/operator/aggregation/filter/
Сергей
просто запросом вы не получите один элемент массива
Мне нужны все которые подходят под условие
Mike
videos это массив
Монга массивы автоматом в коллекции субдоков делает с версии 3.6 вроде
Dmitriy
Мне нужны все которые подходят под условие
используйте $filter он вам даст нужный функционал, но это не дешовая операция, если скорость важна, я бы подумал о выделение элементов массива videos в отдельную коллекцию с индексом по полю date
Dmitriy
в сторону изменения схемы данных. если я правильно понимаю у вас сейчас документы выглядят примерно так: {"123": "aaa", "234": "bbb", "567": "ccc"}
Dmitriy
не зная точного имени поля вы не сможите по нему искать
Mike
ну как вариант можно несколько обходов же делать, отрезая по одному символу от входных данных.это при условии что нельзя поменять схему
Svatov
да так и есть, мне нужно будет находить максимально совпадающее число по входному параметру
Svatov
спасибо, приблизительно так и думал, просто я только начал базой этой пользоваться и возможно думал что там есть что-то встроенное и не надо будет итерировать по каждому символу
Dmitriy
хотя можно сделать относительно дешовый костыль, выносить имена полей в отдельную колекцию со стринговыми значениями и искать наиболее подходящее поле через $regex и вторым запросом уже делать выборку по нему
Dmitriy
вам надо использовать aggregation или как метод называется в js
Dmitriy
а не findOne
Mike
aggregate
Сергей
вам надо использовать aggregation или как метод называется в js
MongooseError: Mongoose 5.x disallows passing a spread of operators to Model.aggregate(). Instead of Model.aggregate({ $match }, { $skip }), do `Model.aggregate([{ $match }, { $skip }])
Dmitriy
я сразу скажу, что я не программирую на js, но документацию не поленился открыть: https://mongoosejs.com/docs/api/aggregate.html#aggregate_Aggregate
Dmitriy
и вроде для 5 версии
Dmitriy
и да, вам в ошибке прямо пишут, что надо в качестве параметров метода подставлять не объект, а массив объектов
Roman
Привет! Подскажите, можно ли создать dump базы так, чтобы ключ _id назывался objectId?
Aleksandr
Aleksandr
Привет! Подскажите, можно ли создать dump базы так, чтобы ключ _id назывался objectId?
нужно написать запрос с $project в котором будет поле переименовано
Aleksandr
и выгрузить данные при помощи mongoexport -q
Aleksandr
https://docs.mongodb.com/manual/reference/program/mongoexport/#cmdoption-mongoexport-query
Ilya
Решил удалить неиспользуемый индекс у коллекции, который должен был занимать не мало памяти, но после удаления у процесса mongod объем занимаемой памяти не уменьшился (если смотреть через top) Освобождение произойдет позже или как?
Sergey
Решил удалить неиспользуемый индекс у коллекции, который должен был занимать не мало памяти, но после удаления у процесса mongod объем занимаемой памяти не уменьшился (если смотреть через top) Освобождение произойдет позже или как?
Mongod пытается занять всю память, которую ей положено занять согласно конфигу. По умолчанию это половина памяти машины. Поэтому, в top точно ничего не увидеть. Если индекс не использовался, то он и вовсе мог не загружаться в память. Например, если в коллекцию не было записи. Если запись была, то в память загружается только горячая часть индекса. В зависимости от специфики индекса и паттернов записи горячим может быть как весь индекс, так и какая-то небольшая его часть, не зависящая от объёма коллекции. Чтобы увидеть, сколько реально индекс занимал в памяти, нужно смотреть внутреннюю статистику по памяти mongod.
Sergey
Решил удалить неиспользуемый индекс у коллекции, который должен был занимать не мало памяти, но после удаления у процесса mongod объем занимаемой памяти не уменьшился (если смотреть через top) Освобождение произойдет позже или как?
Разумеется, эта штука покажет только использование кэша в моменте. Чтобы была история, нужно по cron'у писать в какой-нибудь ElasticSearch. Возможно, есть и готовые инструменты для сбора таких метрик, но я ничего такого не использовал.
madspectator
Подскажите, есть смысл монге больше памяти выделять, чем по-умолчанию (50%). На сервере 94Gb RAM. Я имею в виду, если я ей выделю 80Gb, например, я не наврежу каком-нить там кэшированию ОС файлов данных монги?
madspectator
На сервере кроме монги ничего нету.
Anonymous
Всем привет! Подстажите пожалуйста, как наиболее элегантно выбрать из коллекции документы, созданные только по четным минутам? У каждого документа есть поле вида: createdAt" : ISODate("2019-09-04T23:25:39.952Z")
Alex
Всем привет! Как избежать изменения поля createdAt, чтобы его нельзя было апдейтить через $set?
Alex
Спасибо)
Alex
Попробую
Гена
Доброе утро. Подскажите, в монго можно настроить автоматическое удаление данных старше N дней/месяцев? Есть ли такой функционал?
Anonymous
$mod $minute $cond
спасибо, почитаю в эту сторону
Гена
https://docs.mongodb.com/manual/core/index-ttl/
Оу. Точно. Спасибо
Roman
нужно написать запрос с $project в котором будет поле переименовано
Спасибо за совет! Конечно $project в mongoexport -q не сработал, видимо aggregate нельзя использовать в mongoexport. Я сделал выгрузку во временную таблицу с помощью db.collection.aggregate([{'$project': {ObjectId: '$_id'}}, {'$out': 'temp'}]); и дальше воспользовался mongoexport.
yopp
А у нас в чятике есть кто-то из Перконы?
Semyon V
почему при падении secondary сэта в реплике, инстанс монги на primary отваливается и зависает в secondary после рестарта?
Tsikhan
Доброго времени суток! Подскажите пожалуйста как в mongo 3.4.7 поменять окно оплога? прием как в доке не работает, видимо старая монга https://docs.mongodb.com/manual/tutorial/change-oplog-size/
Tsikhan
спасибо!
Semyon V
как-то возможно выбрать записи, у которых совпадают значения разных полей?
Semyon V
да. поле a1 = abc и b1 = abc. нужны все документы где значение a1 = b1
Semyon V
по-моему это неверный синтаксис
Semyon V
ну да, я уже foreach’ем прошёлся
Андрей
Народ, подскажите, что я не так делаю. Задача следующая: в коллекции в каждом доке есть вложенный массив accounts. Задача сменить тип всем элементам массива со стринга на интовый. Версия монги 3.2. var collection = db.getCollection("components"); collection.find({ "_id": NumberLong(752) }).forEach(function (doc) { doc.accounts.forEach(function (accId) { accId = new NumberInt(accId); }); collection.save(doc); }); Что-то не так я делаю во внутреннем forEach. Потому что обычные поля пересохраняет