Nick
И теперь save выполнеите в промисе
Anonymous
подскажите с шардированием плез создал коллекцию {myfiled: value} сделал хешированный индекс по этому полю включил шардинг, но абсолютно все записи попадают на один шард (из всего 3) что я делаю не так ?
yopp
Вы можете руками его поделить на 9 кусков, чтоб балансировщик растащил их по оч латным шардам
Anonymous
Вы можете руками его поделить на 9 кусков, чтоб балансировщик растащил их по оч латным шардам
а как это сделать ? я уменьшил размер чанка до 1мб, вставил 1кк записей и все равно всё оказалось на однорм шарде
yopp
Тогда проверьте что у вас с балансировщиком
Anonymous
Тогда проверьте что у вас с балансировщиком
разобрался, спасибо почему-то второй шард роутер не видел
Artem
а можно в mongodb при insertMany указать игнорировать ошибку duplicate key insert
Artem
?
Sergey
а можно в mongodb при insertMany указать игнорировать ошибку duplicate key insert
https://docs.mongodb.com/manual/reference/method/db.collection.insert/ ordered
Sergey
Попробуй выставить ordered в false
Sergey
If false, perform an unordered insert, and if an error occurs with one of documents, continue processing the remaining documents in the array.
Daniyar
привет всем... есть вопрос.. есть ModelA в котором есть ModelB... можно ли виртуализировать какой-нибудь field (допустим title) из ModelB в ModelA... используя schema.virtual()? чтоб возвращал типа такого: { ... modelB: /* какой-то id */, modelBtitle: "название", ...}
Daniyar
заранее прошу извинения.. если где-то, что-то недопонимаю
S
ребята всем привет, интересует вопрос! Как мне проверить скорость добавление изменения и поиск в этой базе данных? предположим 50к записенй
S
а можно пожалуйста поподробней я не знаю что это такое.
Гена
https://docs.mongodb.com/v4.0/tutorial/manage-the-database-profiler/
Гена
В вашем случае, я бы рекомендовал второй уровень профилирования
Гена
но помните, system.profile коллекция фиксированного размера рекомендую создать свою
Nick
тестирование вставки покажет скорость вставки, а не скорость работы БД на ваших сценариях в вашем окружении
Dmitriy
ребят, помогите с запросом на обновление с пайплайном внутри разобраться, где накосячил? хочу добавить поле в документ со значением из другого поля: db.getCollection('collection').updateMany( {"field": {$ne: null}, "field.sub_field_1": {$ne: ""}}, [ {$set: {"field.sub_field_2": "$field.sub_field_1"}} ] ) на выходе ошибка: the update operation document must contain atomic operators на выхо
Dmitriy
кидай ссылку чтоли
ловите) https://jira.mongodb.org/browse/SERVER-46055?attachmentViewMode=list
Igor
всем привет, есть обьект { _id: 5e6a97b915c89e68d8d5ffb5, posts: [ { _id: 5e6a97b915c89e68d8d5ffb4, name: "mongo" }, { _id: 5e6a980215c89e68d8d5ffb6, name: "test" } ] } мне надо получить пост с name = mongo запрос выглядит сл образом mongo.collection('posts').findOne({ "_id": "5e6a97b915c89e68d8d5ffb5", "posts._id": "5e6a97b915c89e68d8d5ffb4" }) мне возвращается весь обьект, а не элемент массива, подскажите пожалуйста как получить только пост)
Ростислав ✚
Здравствуйте. Такой вопрос, пытаюсь использовать оператор $text но получаю text index required for $text query. В схеме mongoose у поля параметры такие words: { type: String, index: true } Разве String и text это разные типы?
yopp
Скорее всего index: true создаёт обычный индекс
Ростислав ✚
Скорее всего index: true создаёт обычный индекс
Что-то в документации мангуста я такого не найду. Может он такое не поддерживает и нужно использовать стандартный модуль?
Ростислав ✚
Скорее всего index: true создаёт обычный индекс
Спасибо, разобрался Schema.index({words:"text"})
Boris
Всем привет!
Boris
Изз-за чего может появляться данная ошибка?
Boris
MongoDB shell version v4.0.16 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb 2020-03-13T12:24:25.880+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:344:17 @(connect):2:6 exception: connect failed
Boris
Просто до сего момента все запускалось нормально
Гена
Лог гляньте
Гена
Что там
Гена
Выглядит так словно монга не запущена
Гена
Ну или все что угодно
Гена
Коллеги, подскажите, почему когда делаю экспорт/импорт бд есть разхожения в кол-ве документов?
Гена
делаю с секондари, нода залочена, и когда дамп завершается он пишет правильное кол-во документов
Гена
а после рестора проверяю почти 10к из 400к не хватает
Aro
Всем привет.У меня вопрос. Кто нибудь подскажет как коннектит mongolab connection string с mongodb compass
Brunello
http://docs.mongodb.com/compass/master/connect
Alexandr
всем привет. Подскажите как можно отсортировать результат поиска по полю но не в алфавитном порядке, а, например, field: ‘B’ вывести первым, field: ‘Z’ вторым и field: ‘A’ последним
Alexandr
например: db.collection.insertMany([ { value: 'A' }, { value: 'B' }, { value: 'C' } ]); db.collection .find({}) .sort({ ... }); хочу получить: [ { value: 'B' }, { value: 'C' }, { value: 'A' } ]
Alexandr
как написать для этого сортировку?
Alexandr
nodejs
Alexandr
mongoose
Nick
вот там и делайте сортировку как надо, в монге кастомных споосов нет. может правда добавить еще одно поле с нормальным порядком сортировки и уже по нему сортирвоать
Alexandr
не очень понял где «там» .then(data => { res.json(data.sort(…)) })
Alexandr
так?
Nick
типа да, я в js не могу сказать, в джавке это был бы стандартный компаратор
Alexandr
понял, спасибо. Все усугубляется тем что коллекция может быть большой, и применяется пагинация со skip(), limit(). Поэтому правильнее делать это средствами монго
Alexandr
спасибо еще раз.
Murena
Подскажите как правильно изменить тип поля в схеме - с String на Number/Int32 - в схеме изменил тип - прошелся по всей базе и перезаписал поле сделав Number.parseInt(item.duration) - но ниего не изменилось - поле так и осталось стрингой
Murena
что делаю не так ?
Murena
если более правильно то как сконвертировать сущетсвующие данные и поле с стринги в Number/Int32
Nick
понял, спасибо. Все усугубляется тем что коллекция может быть большой, и применяется пагинация со skip(), limit(). Поэтому правильнее делать это средствами монго
в этом случае правильнее добавить какоето поле, по которому можно нормальными средствами монги сделать обычную сортировку, надеюсь у вас там критерии для сортировки не меняются то и дело
Nick
если более правильно то как сконвертировать сущетсвующие данные и поле с стринги в Number/Int32
если монга 4.2 то через updateMany с пайплайном с конвертацией https://docs.mongodb.com/manual/reference/operator/aggregation/convert/ если нет то каждый док вытаскиваете, меняете тип, и сохраняете измененный. ну и схему самом собой редактируете
Ростислав ✚
Здравствуйте. Есть например 3 документа в базе с полями по типу: ['слово1', 'слово2', 'слово3'] ['слово1', 'слово2', 'слово4'] ['слово2', 'слово4', 'слово5'] сделав запрос на поиск: find({words: {$in:['слово2', 'слово4']}}) я получаю второй и третий документы, потому что они полностью совпадают с запросом, но как мне с тем же масивом в запросе получить также и первый документ где совпадение частично? И что бы он был в конце так как у него меньше всего совпадений. Как заставить монгу вместе с полным совпадением вернуть и те результаты которые совпали только частично?
yopp
@igorek812 вам нужно в AF использовать сначала условие поиска в $match и потом ещё использовать эквивалентное условие в $addFields чтоб отфильтровать массив через $filter
Stan
привет! Подскажите пожалуйста, как обновить значение для всех элементов в массиве одного документа?
Ростислав ✚
Проверяйте данные в базе изапросе, по вашему варианту должен был вернуться и первый док
Я в базу записал практически тот же самый пример, не возвращает первый. Вот то что в базе
Ростислав ✚
Вот то что возвращает при запросе, скрин postman
Ilya
Всем привет! Переножу бд с одного сервера на другой и встала задача вытащить все данные из одной бд и перенести в другую Как в mongodb такое делается?
inqfen
Дамп, рестор
Artem
Всем привет, такой вопрос. Как лучше сохранять данные в монге, через base64 или GridFs? Если через грид, то там всё абсолютно тоже самое, но вместо Collection = client.db.coll -> FilesCollection = client.db.fs.files, так?
Araik
доброго утра всем, подскажите пжл, как посчитать среднее значение поля в выборке для всех документов? Про $avg знаю, но если применять его в $group, то нужно указывать _id, что нужно вместо $group применить в данном случае?
Araik
Сейчас делаю так, но он считает среднее значение и сортирует по полю $priority, а мне без сортировки нужно, сразу для всех документов
Araik
кажется понял, нужно _id указать как null :)