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
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
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
по одному на каждое условие
Nikita
FSM
limit?
тогда могут получиться оба значения с {"name":123}
Nikita
FSM
а нужно, грубо говоря, получить:
db.getCollection('name').findOne({"name":123})
db.getCollection('name').findOne({"name":456})
за одну операцию
Nikita
а он то тут причем
Ну ты же не можешь объяснить нормально, что тебе нужно, потому и тыкаю пальцем в небо
Мечтатель
Я понял что ему нужно
Мечтатель
Но ответа пока нет
FSM
Nick
SvPupok
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
посмотрите спеку вашего языка как добавить поле с нужным вам имененм
Yurii
Константин
РКН, ха-ха-ха прекрати)))
Hopf
Пострадавшие проекты ответили РКНу.
Hopf
Can't stop raving (c) Dune
Bruno
РКН точно от ддоса лёг?
Bruno
не оттого, что заблокировал себе сайт?
Mihail
Всем добрый вечер. Подскажите пожалуйста, в чем может быть проблема. Монго 3.6.2 убунту 16. Все работало хорошо, но сегодня непонятно из-за чего, процесс завершился, и не запускается. systemctl status mongod - code=exited, status=1/FAILURE В чем может быть дело?
Мечтатель
Nick
никто такой информации нигде не напишет, т.к. все зависит от данных, их структуры и размера, что вы с ними делаете, насколько кривой код написан в жабе и как сильного его подтормозит гц на таком малом хипе, плюс какова будет разблюдовка хип джавы/монга/свободная память для кеша фс. Не забываем что возмжно чтото еще будет крутитсья на серваке. И это я только про память. Дальше диски и ЦПУ. Короче делайте и тестируйте
Nick
если сделать чтото дико простое то 1к рпс мжно обрабатывать
Serhii
посоветуйте какой-то курс по Rest Api на Express/MongoDB
Mihail
есть возможность в логи глянуть?
посмотрел логи, ошибки не понял, но было связано с disk storage. проверил свободное место, оказывается тупо хард память кончилась. много логов хранится. почистил, все нормально работает👍нужно немного заняться администрированием убунты
Мечтатель
Мечтатель
Мечтатель
но это было с какой-то старой версией
Мечтатель
2.6 или 2.8 что ли.... точно не помню
Rustam
Артём
можно запросом удалить дубликаты записей по определенным свойстам?
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
но это будет скорее всего _очень_ медленно