Serhii
это в консоли при PUT запросе
Serhii
/Users/sergey/Documents/Node/Whizzy/whizzy/node_modules/mongodb/lib/utils.js:132 throw err; ^ MongoError: The dollar ($) prefixed field '${req' in 'meta.${req' is not valid for storage. at Function.MongoError.create (/Users/sergey/Documents/Node/Whizzy/whizzy/node_modules/mongodb-core/lib/error.js:45:10) at toError (/Users/sergey/Documents/Node/Whizzy/whizzy/node_modules/mongodb/lib/utils.js:149:22) at /Users/sergey/Documents/Node/Whizzy/whizzy/node_modules/mongodb/lib/collection.js:1035:39 at /Users/sergey/Documents/Node/Whizzy/whizzy/node_modules/mongodb-core/lib/connection/pool.js:544:18 at process._tickCallback (internal/process/next_tick.js:112:11) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! whizzy@0.0.0 start: node ./bin/www
Nick
А тебе кто нужен?
да просто ражи интереса, без какой либо цели
Sergey
И снова здравствуйте. =) Разбрается ли кто-нибудь как в монге работает $where в find()? В доке написано MongoDB will evaluate non-$where components of query before $where statements. If the non-$where statements match no documents, MongoDB will not perform any query evaluation using $where. Но на практике, запрос с $where даже при 0 найденных документов жутко грузит базу по процессору. У меня пока только есть предположение, что это из-за предкомпиляции js-кода.
Sergey
запросы вида db.coll.find({$and: [ {..}, {...}, {$where: ...}]}) или db.coll.find({...}).where(...)
Nick
запросы вида db.coll.find({$and: [ {..}, {...}, {$where: ...}]}) или db.coll.find({...}).where(...)
а можно инфу том как вообще можно комбинирвоать find и where?
Sergey
а можно инфу том как вообще можно комбинирвоать find и where?
Да в общем-то через обычный $and работает нормально, ну кроме проблем со скоростью
Nick
а в чем вообще необходимост ьwhere использовать?
Sergey
Не хочется гонять большой блоб из базы в бекенд чтобы потом просто отбросить его и вернуть 404.
Nick
а что мешает вынести необходимые данные из блоба в сам документ для упрощения поиска?
Sergey
Это и есть документ
Sergey
Просто там полей много
Nick
а размер дока?
Nick
в среднем
Sergey
Сотня килобайт, может чуть больше
Nick
уже просто так не погоняешься, хотя всеравно с диска читать
Sergey
Ну на выходе после IXSCAN всегда 1 документ или ни одного. Только не понятно откуда такое падение на where. Просто достать документ целиком оказывается намного быстрее, чем делать фильтр с where.
Sergey
Смотрел explain и профилировщик, там where вообще нигде не фигурирует даже
Rustam
Есть статистика по производительности и характеристикам монги? Реально ли еле активный проект томкат+спринг+монго на гиге оперативы поднять? К примеру в дижиталоушен, самый дешевый хост за 5$
FSM
здорово, ребята, как за один запрос получить два объекта из одной коллекции используя findOne()? То есть такой запрос: '''db.getCollection('name').find({$or:[{"name":123}, {"name":456}]})''' может вернуть мне больше 2 значений, если имена будут совпадать, а мне нужно именно 2 значения
FSM
по одному на каждое условие
FSM
limit?
тогда могут получиться оба значения с {"name":123}
FSM
а нужно, грубо говоря, получить: db.getCollection('name').findOne({"name":123}) db.getCollection('name').findOne({"name":456}) за одну операцию
FSM
distinct?
а он то тут причем
Nikita
а он то тут причем
Ну ты же не можешь объяснить нормально, что тебе нужно, потому и тыкаю пальцем в небо
Мечтатель
Я понял что ему нужно
Мечтатель
Но ответа пока нет
Nick
А тоже самое только в обыной js виде для монгошела работает?
Anonymous
db.setProfilingLevel(2); Запускай запрос db.setProfilingLevel(0); Иди в коллекцию system что-то там и смотри, что прилетело в монгу
Nick
тогда куда вы баг хотите репортить?
Anonymous
Если прилетела дичь - открой issue драйверу
Nick
я вот в C# ни бумбум но контракт на Slice ожидает поле вторым аргументом, это норм что вы туда 0 передаете?
Nick
https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Driver/ProjectionDefinitionBuilder.cs#L168
Nick
смотрите внимательно там есть третий параметр для вашего skip
Nick
я говорю про skip а не про limit
Stas
возможно будет проще взять всё а потом вырезать ненужное?
Nick
мне вот интересно а зачем вам слайс если вам нужны все элементы? может просто вытащить массив?
Serhii
HELPPP
Serhii
MongoClient.connect(url, function(err, db){ if(err) throw err; var dbo = db.db('whizzy'); var id = new ObjectID(req.params.id); var newValues = null; var index = 'meta.parents.' + req.params.index; newValues = {$set: { index : { _id : '1001'}}}; if(newValues != null){ dbo.collection('kids').update({ _id : id }, newValues, function(err, res){ if(err) throw err; console.log('RECORD WAS UPDATED'); db.close(); }); } });
Serhii
index, в запросе стучиться не к 'meta.parents.1' к примеру, а к 'index'
Nick
посмотрите спеку вашего языка как добавить поле с нужным вам имененм
Константин
РКН, ха-ха-ха прекрати)))
Hopf
Пострадавшие проекты ответили РКНу.
Hopf
Can't stop raving (c) Dune
Bruno
РКН точно от ддоса лёг?
Bruno
не оттого, что заблокировал себе сайт?
Мечтатель
не оттого, что заблокировал себе сайт?
https://2ip.ru/rkn-blacklist/ тут вроде не числится их адрес
Mihail
Всем добрый вечер. Подскажите пожалуйста, в чем может быть проблема. Монго 3.6.2 убунту 16. Все работало хорошо, но сегодня непонятно из-за чего, процесс завершился, и не запускается. systemctl status mongod - code=exited, status=1/FAILURE В чем может быть дело?
Rustam
Вполне, главное понимать что никакой магии нет и сверхскоростей не будет на таком железе
Может есть информация о том, сколько клиентских запросов в секунду будет возможно обработать?
Nick
никто такой информации нигде не напишет, т.к. все зависит от данных, их структуры и размера, что вы с ними делаете, насколько кривой код написан в жабе и как сильного его подтормозит гц на таком малом хипе, плюс какова будет разблюдовка хип джавы/монга/свободная память для кеша фс. Не забываем что возмжно чтото еще будет крутитсья на серваке. И это я только про память. Дальше диски и ЦПУ. Короче делайте и тестируйте
Nick
если сделать чтото дико простое то 1к рпс мжно обрабатывать
Serhii
посоветуйте какой-то курс по Rest Api на Express/MongoDB
Mihail
есть возможность в логи глянуть?
посмотрел логи, ошибки не понял, но было связано с disk storage. проверил свободное место, оказывается тупо хард память кончилась. много логов хранится. почистил, все нормально работает👍нужно немного заняться администрированием убунты
Мечтатель
посмотрел логи, ошибки не понял, но было связано с disk storage. проверил свободное место, оказывается тупо хард память кончилась. много логов хранится. почистил, все нормально работает👍нужно немного заняться администрированием убунты
у нас была похожая проблема когда оплог разбух до предела. и монга просто встала. в логах пусто. она просто перестала работать. было сложно раскопать что произошло
Мечтатель
но это было с какой-то старой версией
Мечтатель
2.6 или 2.8 что ли.... точно не помню
Артём
можно запросом удалить дубликаты записей по определенным свойстам?
Nick
Просто не получится. Нужно создать новую коллекцию с уникальными индексами по вашим полям и перелить туда данные с игнорированием ошибок дубликатов
Alex
Всем привет. Подскажите пожалуйста что быстрее в монго чтение или запись?
Nick
не хватает данных, какие у вас размеры данных и и структура, количество индексов, типы запросов на чтение, а так же какие серваки, диски, оператива, ЦПУ сеть, гед клиенты, какие драйвера используются
Nick
но и в таком случае никто не даст вам ответ
Nick
пока не протестируете ваш случай
yopp
Всем привет. Подскажите пожалуйста что быстрее в монго чтение или запись?
Запись почти всегда дороже чем чтение. Тупо физика
yopp
В случае с монгой писать вы можете со скоростью близкой к скорости своего хранилища, а читать со скоростью близкой к скорости вашей шины памяти.
yopp
В идеальном случае
Юрий
Привет, товарищи! у меня совсем нубский вопрос сейчас будет. пытаюст получить отсортированные данные, но упираюсь в лимит памяти. использую такую команду db.colname.find().sort({param:-1}).limit(1000000) как лучше всего решить подобную задачу?
yopp
построить индекс param: -1
Юрий
так, ок, а если я не могу трогать индексы?)
yopp
пытаться ограничить диапазон param
yopp
можно ещё попробовать Aggregation Framework и use_disk
yopp
но это будет скорее всего _очень_ медленно