Заур
а, ну тогда хз
Все равно спасибо)
Semyon
Как найти объект по дате в бд, если дата хранится в ISODate("")?
Semyon
Если в консоли сделать такой запрос: db.flights.find({departure: {$gte: ISODate('2018-10-19T00:00:00.000Z')}}) то всё ок. Если же из ноды: flight.find( { departure: { '$gte': new Date('2018-10-19T00:00:00.000Z') } } то ничего не возращается.
Vova
А разве new Date не в миллисекундах возвращает значение?
Нет, будет объект с датой. Date.now() вернёт миллисекунды с начала эпохи Unix
Semyon
new Date().toISOString() тоже не работает
Semyon
А я просто не к той дб коннектился
Semyon
facepalm
Aleksei
Господа, а есть какой-то удобный способ загружать на старте какие-то данные (словари), нужные для работы приложения, да еще и с возможностью обновлять их?
Anonymous
Подскажите пожалуйста, использую монгус, и, кажется, что-то не так делаю ItemSchema.pre('save', function (next){ this.slug = slugify(this.name); next() }) Мне казалось это так работает, но не работает, поле не добавляется. Посоветуйте пожалуйста, как это правильно сделать? slugify - это вот этот модуль. Может быть он отрабатывает асинхронно и это нужно учесть?
вот потестировал, и оказалось, что слаг всё-таки создается, но только раз, в момент создания. потом не получается его поменять. может, нужна подписка на событие update отдельно? Обновление происходит по методу .findByIdAndUpdate(req.params.id, {$set:req.body}). Обнолвние приходит без поля slug. UPD: что-то судя по консоль логам, эти мидлвари вообще не вызываются UPD2: и вот почему : https://mongoosejs.com/docs/middleware.html#notes UPD3: однако использование ItemSchema.pre('update', function() { console.log("Item PRE UPDATE"); this.update({},{ $set: { slug: (slugify(this.name)).toLowerCase() } }); }); никак не решило проблему, оно тоже не вызывавется. пока решил эту проблему кодом в роуте, но хотелось бы нормально это оформить. на всякий случай - версия монгус 5,2,9
Max
Привет! обьясните пожалуйста кто-то разницу - вот у нас есть реплика сет в клауде (да не важно где). в чём отличие если я конекчусь только к праймари ноде и если я конекчусь к реплика-сету?
Yaroslav
а когда такой кейс реальный?
ну ты в качестве host указал адрес только primary ноды , тогда такое будет происходить , у тебя драйвер не будет знать про реплика сет
Yaroslav
Поэтому надо указывать все адреса нод кластера в host: mongo-1:27017,mongo-n:27017 и тд
Max
реплика-ноды участвуют как-то в обработке запросов?
Max
сорри за нубский вопрос
Yaroslav
а при штатной работе есть профит?
по умолчанию нет , но могут только в этом случае есть шанс что к тебе прилетят "не свежие" данные . лучше почитай офф доки там все довольно подробно расписано в том числе риски и подходы как избежать их https://docs.mongodb.com/manual/replication/
Yaroslav
а при штатной работе есть профит?
все запрос на запись и чтение идут в Primary , секнодари можно настроить на чтение , но не на запись
little big
Ребят, подскажите пожалуйста, есть такая вот модель: http://dpaste.com/2ADM5QR Когда я пишу в базу, то всё окей, создается вот такой объект: http://dpaste.com/2AR5J4D Но когда я делаю populate это блока вот таким вот запросом: let query = await Blocks.find().populate('operations.link').populate('transactions').limit(1).lean(); транзакции вытаскивает правильно, а операции почмеу-то нет. Выводит вот такое: "operations": [ { "_id": "5bc73887719d692203ee6bcc", "link": "5bc73886719d692203ee6bc9", "onModel": "votes" } ] Хотя ожидается, что выведет операцию из коллекции votes. Подскажите, в чем косяк запроса
Anonymous
привет. Подскажите, у меня в большой модели вот такое поле получилось, по смыслу верное, но с точки зрения организации данных, правильно ли: people: [{name: String, socialNetworks: [String], previousCompanies: [String]}] и имеет ли смысл если поле предполагается быть массивом обьектов с двумя полями, использовать вместо этого массив массивов? [{1: String,2:String}] => [[String]]
V
Ребят а в mongo 4+ версии если шардинг транзакции разрешены ?
Oleg
db.getCollection('payments').aggregate([ { "$match": {status: 'paid'} }, { "$group": { "_id": null, "total": {"$sum": ["$amount", "$credentials.WMI_COMMISSION_AMOUNT"]} } } ]) Как вывести общую сумму оплат с вычетом комиссии, которая находится в credentials.WMI_COMMISSION_AMOUNT? При таком запросе ошибка: Error: Assert: command failed: { "ok" : 0, "errmsg" : "aggregating group operators are unary ($sum)", "code" : 15953 } : aggregate failed
Constantin
Привет! А что за фигня с изменением лицензии у комьюнити монги?
Sergey
Всем привет, ребят подскажите пожалуйста, допустим у меня есть коллекция snapshot, я хочу сделать subcollection - rate, exchange и т.д, чтоб они были доступны мне как snapshot.exchange, snapshot.rate и соответственно я мог обновлять и записывать что то новое
Sergey
чтоб в snapshot не создавался _id а были доступны только эти параметры
Sergey
можно как то сделать, чтоб subcollection была у самой parent коллекции а не у вновь созданного документа?
V
ребят а ктото знает в MongoDB Compass вожно базу востановить через backup локальный
Nick
можно как то сделать, чтоб subcollection была у самой parent коллекции а не у вновь созданного документа?
нет, у монги нет понятия foreign key, это лишь абстракция драйвера или монгуса
Anonymous
Всем доброго времени суток, коллеги можете подсказать как глянуть размер всех баз монго?
Max
show dbs
Anonymous
суммарно)
Max
так оно и покажет базу и размер
Anonymous
у меня много баз, есть возможность как то их суммировать и отобразить значение
Anonymous
Суммарное значение всех баз вместе взятых
yopp
начальная идея монги была сделать базу как сервис, но они не нашли подходящей и запилили свою. теперь они её до конца допилили и атлас со стичем это будущее. self hosted скорее всего никто трогать не будет, но делать хостинг монги больше не выйдет. бедный mlab им наверное руки сильно вывернули с покупкой
Constantin
убивают конкурентов Atlas
А что это значит для тех, у кого свое частное облако для себя и клиентов?
yopp
это значит что инфраструктуру обслуживающую клиентов придётся опенсорсить
yopp
или покупать коммерческую лицензию
Constantin
это значит что инфраструктуру обслуживающую клиентов придётся опенсорсить
Даже если для клиентов — это не БД, а размещение купленного у нас приложения в нашем облаке?
yopp
13. Offering the Program as a Service. If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available ​via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, ​enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Software or modified version. “Service Source Code” means the Corresponding Source for the Program or the modified version, and the C​orresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.
yopp
Program == MongoDB
yopp
стрёмная лицуха
yopp
потому что functionality of the Program это очень абстрактное описание
yopp
но если коротко: это касается только если вы пытаетесь монгу как сервис предоставлять
Anonymous
коллеги есть у кого нибуть скрипт для дампа и архиваци каждой бд в отделный архив?
Constantin
коллеги есть у кого нибуть скрипт для дампа и архиваци каждой бд в отделный архив?
Попробуйте http://backup.github.io/backup/v4/, можно даже на S3 загрузить по окончанию, и сделать ротацию
darkwoolf
Привет всем. Такой трабл не могу запустить монго на ubuntu 18
darkwoolf
woolf@woolf:~$ mongo MongoDB shell version v4.0.3 connecting to: mongodb://127.0.0.1:27017 2018-10-18T19:13:31.691+0300 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:257:13 @(connect):1:6 exception: connect failed
darkwoolf
woolf@woolf:~$ mongod 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] MongoDB starting : pid=13439 port=27017 dbpath=/data/db 64-bit host=woolf 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] db version v3.6.3 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] git version: 9586e557d54ef70f9ca4b43c26892cd55257e1a5 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.0h 27 Mar 2018 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] allocator: tcmalloc 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] modules: none 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] build environment: 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] distarch: x86_64 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] target_arch: x86_64 2018-10-18T19:14:03.662+0300 I CONTROL [initandlisten] options: {} 2018-10-18T19:14:03.663+0300 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating 2018-10-18T19:14:03.663+0300 I CONTROL [initandlisten] now exiting 2018-10-18T19:14:03.663+0300 I CONTROL [initandlisten] shutting down with code:100
darkwoolf
NonExistentPath: Data directory /data/db not found., terminating
Если создать её то этого должно быть достаточно?
darkwoolf
Потому что я создал и вроде как не достаточно
yopp
права нужны, чтоб пользователь монги мог туда писать и читать
darkwoolf
darkwoolf
Я вписал эту команду
darkwoolf
yopp
chown mongodb:mongodb
darkwoolf
В этой дериктории вписать?
yopp
sudo chown -R mongodb:mongodb <path_to_db>
darkwoolf
или sudo chown -R mongodb:mongodb db?
yopp
судя по всему да
yopp
можете просто указать абсолютный путь, а не относительный
darkwoolf
yopp
ls -la
yopp
но вообще заведите себе лучше атлас)
yopp
https://www.mongodb.com/cloud/atlas
darkwoolf
ls -la
такие же как и были