Vladislav
db.w.updateMany(
{},
{ $set: { "stats.$.typing_testing.unique_shows": "stats.$.typing_testing.total_shows"}}
);
Vladislav
Пишет ошибку ''The positional operator did not find the match needed from the query."
Vladislav
как можно пофиксить?
Dmitriy
А что вы пытаетесь сделать? Если значением одного поля проапдейтить другое, то там вторым аргументом массив идёт.
Dmitriy
А вообще если я правильно понимаю вам в ошибке открытым текстом пишут, что вы хотите проапдейтить первый найденный элемент массива, но как его найти не сказали в первом аргументе
Vladislav
А что вы пытаетесь сделать? Если значением одного поля проапдейтить другое, то там вторым аргументом массив идёт.
Есть коллекция w:
{
"stats": [ {total_shows:12, unique_shows: 0 }, {total_shows:15, unique_shows: 0}],
},
{
"stats": [ {total_shows:20, unique_shows: 0 }, {total_shows:17, unique_shows: 0}],
},
я хочу сделать у всех stats установить значение для unique_shows равное total_shows
Vladislav
то есть написать такой update-запрос, после которого было бы так:
{
"stats": [ {total_shows:12, unique_shows: 12 }, {total_shows:15, unique_shows: 15}],
},
{
"stats": [ {total_shows:20, unique_shows: 20 }, {total_shows:17, unique_shows: 17}],
},
Dmitriy
то есть написать такой update-запрос, после которого было бы так:
{
"stats": [ {total_shows:12, unique_shows: 12 }, {total_shows:15, unique_shows: 15}],
},
{
"stats": [ {total_shows:20, unique_shows: 20 }, {total_shows:17, unique_shows: 17}],
},
смотрите, документацию:
1) https://docs.mongodb.com/manual/reference/operator/update/#id1 все элементы массива это $[]
2) если вы хотите обновить значение не скалярными данными, а значением другого поля, то: https://docs.mongodb.com/manual/reference/method/db.collection.update/#update-with-aggregation-pipeline как я писал выше второй аргумент функции update должен быть массивом
Vladislav
спасибо!
Slava
Вот такой ивент нашёл, вдруг кому интересно https://cloud.yandex.ru/events/104
Ilya
чет я не понял
Ilya
оно онлайн или офлайн
Ilia
24 марта 2020 г., 14:00 Online, Online
Boris
всем привет! не удается запустить mongo по команде sudo service mongod start
Гена
А какая ошибка ?
Boris
ошибок то вроде нет но при просмотре статуса получаю это
Nikita
journalctl -ru mongod чо пишет то
Boris
Nikita
это системный журнал для systemd сервисов
Nikita
утилита
Valdis
всем привет
Как через mongoose сделать ref на поле другой модели?
раньше через joi и json-mongoose работало
Joi.string().meta({type: 'ObjectId', ref: ‘modelName.field’}),
а как сейчас это с чистым mongoose сделать?
Yaroslav
Valdis
Populate
я хочу в модели переписать на чистый mongoose, то есть я там должен указать
fieldId: {
type: Schema.Types.ObjectId,
ref: 'modelName.field',
},
но насколько я знаю, то реф через точку не сработает
S
всем привет пытаюсь через робомонго вставить 10000 документов но выскакивает такая ошибка, что мне делать?
Valdis
Valdis
и за 2 транзы сделать
S
мне нужно какразтоки и вставить 10к чтобы посмотреть потраченое время
Valdis
возможно у робо3т или монги стоит лимит по обьему данных в 17 мб, а ты пытаешься 30 мб данных одной транзой послать
yopp
Алексей34
Всем привет
Алексей34
Начал изучать MERN. Каждый раз приходится править в MongoDB подключение к базе, иначе не запускается. Реакт запускается, а база данных нет. Почему так?
Roman
интересно как связан стек с монгой
в данном стеке к БД подключается нода
что значит править подключение в MongoDB?
что значит реакт "запускается" как фронтенд фреймворк может запускаться?
Roman
и я очень надеюсь, что речь не про
https://github.com/Hashnode/mern-starter
Алексей34
https://youtu.be/ivDjWYcKDZI
Влад
подскажите, можно ли в mongoose реализовать таким образом:
productModel.find({category: req.body.category})
и если req.body.category пустой – выводить все категории?
Влад
Alexandr
народ, кто в курсе насчет транзакций? пытаюсь сделать insertMany в 2 коллекции по 20-40к записей, все это хочу в транзакцию запихнуть, постоянно вылетает Transaction 1 has been aborted, это из-за большого количества элементов или проблема в другом?
Alexandr
видимо из-за лимитов по времени на комит транзакции, ограничил вставкой 1к записей за раз и все ок стало
Nikita
тэк, снова приветы,
выше описывал кейс, вставка из кафки в монгу батчами тормозит, лейтенси.
потестили на ssd, теперь диск iotime 2мс. Но лейтенси не уменьшились и трупут не вырос
500-800мс на вставку ~1500 unordered батча.
это чисто лейтенси замеренная вокруг batch.execute() в жаве.
any ideas? cpu пустой, память по крайней мере wt cache 1gb из 2gb занято. Еще гиг в докер контейнере, но я так понимаю там особо не важно для записи на ssd
write concern: majority
все ноды в москве
если допустим мы не в сеть затыкаемся - что еще может быть?
Nikita
а да, и лейтенси пропорционально растет с размером батча
Гена
Коллеги, доброе утро. Подскажите, можно ли затейлить оплог?
Или проще селектить последние несколько документов?
Nick
Nick
Гена
Спасибо
Но нашел другой способ, может кому понадобится
https://stackoverflow.com/questions/49490992/get-latest-document-inserted-in-mongodb
yopp
yopp
Nikita
не, я думаю проблема в репликации.
есть какой-то гайд по репликасету чтобы быстрее реликация происходила?
щас по mongodb_mongod_metrics_repl_network_getmores_num_total
видно что 150 в секунду раз гоняет getmores, при этом 10мб/сек трафика
Nikita
batchSize может можно увеличить для getMores для реплик или что-то такое, параллелизация, хз
Гена
yopp
Nikita
йеп, щас как раз запускаю
Nikita
ну кажется не особо помогло.
еще идеи?:(
yopp
Nikita
а что это покажет?
Nikita
драйвер?
yopp
Да, расходы на передачу
Nikita
спс, ща чекну
yopp
Монга будет ACK сразу как пакет команда приехала, не дожидаясь хранилища
Nikita
иииии ничего не поменялось:)
Nikita
но snappy на клиенте тоже не давал изменений:( ладно, смотрим сеть
Nikita
а это что покажет?
Nikita
типа потенциал?
Dmitriy
это вам покажет как работает батч без накладных расходов вашего драйвера
Nikita
накладные расходы драйвера я наверное видел бы в гц или памяти jvm... там конечно ядро под 70%, т.к. однопоточно льет все. но все же
Nikita
но ща чекнем, спс
yopp
Starting in 4.4, MongoDB provides the refineCollectionShardKey command. With the new command, you can refine a collection’s shard key by adding a suffix field or fields to the existing ke
yopp
To minimize latencies, mongos instances, by default, can use hedge reads. With hedged reads, the mongos instances can route read operations to multiple members per each queried shard and return results from the first respondent per shard.
yopp
Prior to MongoDB 4.4, MongoDB returned an error if a blocking sort operations required more than 32 megabytes of system memory. Starting in MongoDB 4.4, blocking sort operations increase the limit on system memory to use for the sort operation to 100 megabytes. For blocking sort operations which require more than 100 megabytes of system memory, MongoDB returns an error unless the query specifies cursor.allowDiskUse() (New in MongoDB 4.4).
yopp
https://docs.mongodb.com/master/reference/operator/aggregation/accumulator/
yopp
Отличный релиз будет
yopp
https://docs.mongodb.com/master/release-notes/4.4/
Anonymous
Есть вот такой апдейт
https://pastebin.com/SDFuTiW6
Обновляется множество элементов многомерного массива. И выполняется он 20 минут. Можно увеличить скорость выполнения апдейта?
Anonymous
Как вариант, чтобы это происходило быстро в БД можно собирать весь документ на стороне приложения, а затем просто заменять его. Может есть еще какие варианты?
yopp
Nikita
тэк, потестили рестор, 6.5гб 1.6кк документов - 11 секунд + 4 на рестор индексов "из меты"
итого 100к-150к в секунду:(
500мб в секунду
и вы мне хотите сказать что дело в spring data или java driver?
Nikita
сеть вроде ок на тестах вне монги(
yopp