Nick
Nick
типа такого?
Lev
Ну... кажется не совсем.
Кажется это просто ответ за запрос. Просто не сразу весь а кусочками, а-ля backpressure.
Положим у меня в базе 1 2 3 4 5
Делаю запрос типа select top 5, оно бы мне вернуло "1 2 3 4 5" но я бы дальше сидел и слушал
Потом в базу прилетает 6 и тогда мне база говорит "удали 1 и добавь 6"
Nick
Nick
в любом случае надо запрос заново делать, даже используя вьюхи
Nick
Lev
Nick
T.A
всем привет. хочу удалить этот индекс и создать новый такой же compound индекс, но только вместо поля date поставлю другое. коллекция довольно большая и хотелось бы узнать насколько этот процесс может замедлить базу. просто приложение недавно вышло в прод, а сегодня началась активная реклама
T.A
SuleYman
Приветствую, хотел узнать у вас ребята, у меня скрипт парсера, которые тянет данные записывает в коллекцию и возможно картинки. Почему "возможно" так как не увидел как это просиходит в коде, подозрение что умеет это делать монго?!
$db = self::getDB();
$bucket = $db->selectGridFSBucket();
$file = fopen(dirname(dirname(__DIR__)) . '/upload/image.jpg', 'wb');
$bucket->downloadToStream($objId, $file);
yopp
Andrew
Коллеги, день добрый! Как вы в Монге с decimal работаете и выполняете мат действия вне её? Поясню: есть саас сервис на php и MySQL + есть другой проект на монге и ноде. Хочу менять стек на первом проекте, но в первом проекте финансовые транзакции и важна точность.
Roman Khonichev
храни копейки
Nico
подскажите пожалуйста, как задать фильтр на update() только по ключу без значения?
filter = {"key1": <any_value>}
Bogdan
Nico
Bogdan
Bogdan
Это ваш фильтр
Bogdan
Element Query Operators
yopp
Максим
Привет, ребята. Помогите с агрегагацией, пожалуйста.
Ищу дубли доков с одинаковым полем innerid
делаю так —
[
{
'$project': {
'innerid': 1,
'uuid': 1
}
}, {
'$group': {
'_id': '$innerid',
'uuids': {
'$push': '$uuid'
}
}
}, {
'$addFields': {
'sizeOfArray': {
'$size': '$uuids'
}
}
}, {
'$match': {
'sizeOfArray': {
'$gt': 300
}
}
}
]
имею результат компасе — докумен с иннерид 959407 имеет 317 дублей.
Но проблема в том что файнд {innerid: 959407} дает мне почти 5000 доков.
Что я делаю не так? Почему разные цифры?
Viktar
{ key1: { $exists: true } }
{ key1: { $ne: null } } ещё можно, надо правда посмотреть перформанс, экзист вроде делает фетч документа
Максим
Максим
повысил и заработало.
В шеле падает с ошибкой такой запрос.
2млн доков всего.
Тогда новый вапрос, как сделать чтоб в шеле справиться с таким?
Максим
MongoError: Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in.
at MessageStream.messageHandler (/usr/lib/mongodb-compass/resources/app.asar/node_modules/mongodb/lib/cmap/connection.js:266:20)
at MessageStream.emit (events.js:200:13)
at processIncomingData (/usr/lib/mongodb-compass/resources/app.asar/node_modules/mongodb/lib/cmap/message_stream.js:144:12)
at MessageStream._write (/usr/lib/mongodb-compass/resources/app.asar/node_modules/mongodb/lib/cmap/message_stream.js:42:5)
at doWrite (_stream_writable.js:417:12)
at writeOrBuffer (_stream_writable.js:401:5)
at MessageStream.Writable.write (_stream_writable.js:301:11)
at Socket.ondata (_stream_readable.js:713:22)
at Socket.emit (events.js:200:13)
at addChunk (_stream_readable.js:294:12)
Максим
это ошибка
Максим
Andrew
Andrew
Максим
Максим
yopp
Про эффективность вопрос не очень понятен
Bogdan
yopp
Использовали, никаких проблем не было. Драйвер заворачивал в тип с фиксированной точностью
yopp
До появления d128 хранили в копейках. Сомневаюсь что преобразование между типами будет проблемой
Nico
В таком случае нужно использовать $or
filter = {"$or": "ConstValue1"} ?
В доках такой пример:
db.inventory.find( { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] } )
- т.е. еще надо через db.inventory.find() ?
Andrew
Andrew
Максим
[
{
'$project': {
'innerid': 1,
'uuid': 1
}
}, {
'$group': {
'_id': '$innerid'
}
}, {
'$count': 'count'
}
]
Максим
сделал так
Максим
просто изначально делал так же, но не подумал про лимиты и мне из 2 млн 98тысяч выдавало, не мог поверить
в общем моя ошибка была в лимитах компаса.
спасибо за помощь
Максим
Bogdan
Nico
А можно при вытаскивании данных find() - исключать "_id" автоматически присвоенный, из результатов? или когда он мешает - его надо вручную убирать?
Nick
Nico
Nico
Не подкинете каких-небудь материалов/статей и знаний по ускорению и скорости работы Монги?
Никаких почти представлений нет о том что подкручивается для скорости.
Антон
Подскажите пожалуйста - как поменять мастера в реплике? И чтобы он всегда был мастером, если с кластером все ок
Dmitriy
Коллеги, добрый день.
Подскажите что делать дальше? Скачал и распаковал этот архив
Dmitriy
Как мне теперь сделать дубликат базы? Как использовать вообще эти утилиты?
все базы расположены в Атласе
Dmitriy
Nick
не обязательно
Nick
можно просто в эту папку перейти в консоли и там исполнять
Nick
также можете добавить путь до папки в переменную PATH и тогда можно будет из любого места их вызывать
Nick
Dmitriy
оо вроде получилось. А как законектиться к атласу?
Dmitriy
Dmitriy
Все получилось, спасибо
Maxim
Добрый день. А может кто-нибудь подсказать, где можно посмотреть запросы, которые выполняются в бд mongodb?
Diego
Народ, мне надо сделать модель юзера, для которой есть 2 роли.
Как лучше всего сделать?
Две разные модели юзеров или одну общую, но добавлять роль? И если второй вариант, то каким образом? Сделать третью модель, где будут хранитьсядокументы с названим роли и id юзера или модель из двух документов, в которых будут просто названия роли.
Nick
Nick
но на самом деле странно что модели ролей имеют разный вид