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
Сергей
Semeon
yes
А что за тема такая симпатичная?
Semeon
Извиняюсь за оффтоп
Сергей
Сергей
Сергей
Сергей
Сергей
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
Svatov
Dmitriy
в сторону изменения схемы данных. если я правильно понимаю у вас сейчас документы выглядят примерно так: {"123": "aaa", "234": "bbb", "567": "ccc"}
Dmitriy
не зная точного имени поля вы не сможите по нему искать
Mike
ну как вариант можно несколько обходов же делать, отрезая по одному символу от входных данных.это при условии что нельзя поменять схему
Svatov
да так и есть, мне нужно будет находить максимально совпадающее число по входному параметру
Svatov
спасибо, приблизительно так и думал, просто я только начал базой этой пользоваться и возможно думал что там есть что-то встроенное и не надо будет итерировать по каждому символу
Dmitriy
хотя можно сделать относительно дешовый костыль, выносить имена полей в отдельную колекцию со стринговыми значениями и искать наиболее подходящее поле через $regex и вторым запросом уже делать выборку по нему
Dmitriy
Сергей
Dmitriy
вам надо использовать aggregation или как метод называется в js
Dmitriy
а не findOne
Mike
aggregate
Dmitriy
я сразу скажу, что я не программирую на js, но документацию не поленился открыть: https://mongoosejs.com/docs/api/aggregate.html#aggregate_Aggregate
Dmitriy
и вроде для 5 версии
Dmitriy
и да, вам в ошибке прямо пишут, что надо в качестве параметров метода подставлять не объект, а массив объектов
Сергей
Roman
Привет!
Подскажите, можно ли создать dump базы так, чтобы ключ _id назывался objectId?
Aleksandr
Aleksandr
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
Ilya
madspectator
Подскажите, есть смысл монге больше памяти выделять, чем по-умолчанию (50%). На сервере 94Gb RAM.
Я имею в виду, если я ей выделю 80Gb, например, я не наврежу каком-нить там кэшированию ОС файлов данных монги?
madspectator
На сервере кроме монги ничего нету.
yopp
Anonymous
Всем привет!
Подстажите пожалуйста, как наиболее элегантно выбрать из коллекции документы, созданные только по четным минутам?
У каждого документа есть поле вида:
createdAt" : ISODate("2019-09-04T23:25:39.952Z")
Alex
Всем привет! Как избежать изменения поля createdAt, чтобы его нельзя было апдейтить через $set?
Denis
Alex
Спасибо)
Alex
Попробую
Гена
Доброе утро. Подскажите, в монго можно настроить автоматическое удаление данных старше N дней/месяцев? Есть ли такой функционал?
Nick
Nick
Гена
Daniil
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/
critskiy
Tsikhan
спасибо!
Semyon V
как-то возможно выбрать записи, у которых совпадают значения разных полей?
Semyon V
да. поле a1 = abc и b1 = abc. нужны все документы где значение a1 = b1
Semyon V
по-моему это неверный синтаксис
Nick
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. Потому что обычные поля пересохраняет
Nick