yopp
Это в принципе и есть метод с write only $inc
Александр
Ребят, есть VPS. На VPS работает Mongo сервер. Я его запаролил и доступ только с localhost сделал. Дальше, установил и настроил OpenVPN. Все работает и клиент выходит под IP сервера. Теперь собственно суть: Как можно сконфигурировать сеть на OpenVPN что бы с компьютера клиента через локальную VPN сеть я мог подключаться напрямую к Mongo? Как сконфигурировать OpenVPN и какой ip добавлять в конфиг монго?
Александр
С сетями на линукс никогда дела не имел
Ростислав ✚
Здравствуйте. Подскажите из-за чего может mongodb съедать оперативу? Я думал что это просто очередь на запись, потому что до этого распарсил туда большой csv через inserMany. Но после окончания записи, она так и не высвободила память.
yopp
Здравствуйте. Подскажите из-за чего может mongodb съедать оперативу? Я думал что это просто очередь на запись, потому что до этого распарсил туда большой csv через inserMany. Но после окончания записи, она так и не высвободила память.
Монга не отдаёт память назад операционной системе. Как и многие другие хранилища. Выделение памяти затратная и достаточно долгая операция, а расчёт таков, что память может почти сразу потребоваться вновь
yopp
Не совсем так
Dmitriy
Подскажите новенькому как же лучше хранить файлы вместе с монго? Вычитал два способа gridfs и в файловой системе в основном говорят что в фс выгоднее и вроде как быстрее Но меня интересует вопрос доступа к таким документам или безопасности Плетение какую нибудь статью или совет на эту тему
Leonid
я использую minio
Semyon V
конечно всем нужно
Ростислав ✚
Я тут недавно спрашивал свойственно ли для монго так сильно нагружать озу. Так вот, можно ли что-то с этим сделать? Мне нужно учетверить количество записей, но оперативка не бесконечная. И ещё можно как-то ускорить получения данных из немаленькой базы в 8м документов? Потому что даже сейчас как-то очень долго отвечает, око 1-2с
Ростислав ✚
Индексы
Из индексов только уникальный id от самой монги и составной индекс(или как-это называется) со всех полей, но по запросу должно выдавать все записи с конкретным полем. Можно ли в этой ситуации что-то сделать?
yopp
А зачем составной индекс из всех полей?
Ростислав ✚
А зачем составной индекс из всех полей?
Что бы не дублировались записи когда я закидываю их через insertMany, мне так посоветовали и вроде бы работает
Ростислав ✚
Просто по 50к за раз закидывает, а уникального поля нет для индекса
Anton
Всем привет
Anton
У меня вопрос тут возник. Имеется документ со своими полями и вложенным массивом объектов. Как можно запросить этот документ, обрезав вложенный массив объектов?
madspectator
Что бы не дублировались записи когда я закидываю их через insertMany, мне так посоветовали и вроде бы работает
Если вы делаете запрос по определённому полю, это поле должно быть первым в вашем составном индексе.
madspectator
Ну и вообще это не слишком эффективно, лучше строить хэш по значениям всех полей, хранить хэш в дополнительном поле, создать уникальный индекс по этому полю.
Ростислав ✚
PH_cheerokee
всем привет ребят, вот я почему-то сразу начал с призмы и там для relationship можно было при создании указать connect и все поля связывало по айди как в нативном синтаксисе монго такое сделать? const newEmpl = await collection.insertOne({ name: toTitleCase(fields.name), active: fields.active, department: { id: fields.department.id } } и мне нужно к этому newEmpl привязать весь department по одному id как правильно сделать?
Max
ребят, можно как-то в монго поменять местами записи в коллекции? или нужно удалять и заново инсертить?
Max
В каком плане поменять местами?
ну я добавил ряд записей, которые через map() вывожу на фронт И просто завтыкал и не в той очередности добавил, не хочу на фронте все это переставлять :)
Avtandil
Привет всем. Не могу понять что делаю не правильно. Значение в find передаеться в виде массива. Нужно найти все совпадения переданные в массиве. exports.findAll = async (req, res) => { /* 1. req.query.locations = ["Kiev","Paris,"Tokyo", London"]; 2. document в коллекции localtions: { title: { ru: "Киев", en: "Kiev" } } */ try { const locales = await Location.find({ $or: [ {'title.ru': { $in: [req.query.locations] } }, {'title.en': { $in: [req.query.locations] } } ] }) res.send(locales) } catch (err) { res.status(500).send({ message: err.message || "Some error occurred while retrieving words." }); } }; Заранее благодарю за разяснение
Avtandil
там массив массивов же
Не понял, поясните, или пример приведите?
Назар
Не понял, поясните, или пример приведите?
если написать req.query.locations = ["Kiev","Paris,"Tokyo", London”], а потом $in: [req.query.locations], то в in попадет [["Kiev","Paris,"Tokyo", London”]]. Не нужны скобки еще одни
S
Привет всем.
S
Подскажите как получить неуникальные записи?
S
Есть документы, это компании. У каждой компании есть инн Путь @attributes.ИНН, он должен быть уникальным. Как найти документы с неуникальными инн. Аналог group by в sql
S
Спасибо!
Aleksandr
.aggregate([ {$group: { _id: '$attributes.ИНН', cnt: { $sum: 1}}}, { $match: { cnt: { $gt: 1}}}])
S
Интересно, спасибо
Oleg
$not не использует индексы?
S
Отработал быстро, скорее всего использует
Oleg
А без $not все быстро. Хоть и регулярки использую.
Leonid
Скинь какой индекс используется
Leonid
Мб он частичный
Oleg
Уже решил без $not попробовать.
Nick
Про not в доках ничего явно не написано, знач нужно смотреть эксплейн, мож и будет использовать в зависимости от запроса
Oleg
Возможно, потому что я делаю count.
Oleg
Почему так долго? Индекс есть.
Oleg
Mikhail
Товарищи, доброе утро. Есть ли возможность в монге менять значение полей с помощью js или другого мощного инструмента, как это можно делать при нахождении полей с оператором $where? не могу ничего нарыть что-то Пример: doc: { "_id":1, "row1":1, "row2":2 } db.people.findAndModify( { query: { $where: "function(){return (this.row1+this.row2==3)" }, sort: { rating: 1 }, update: { &operand: "function(){ if (this.row2>0){this.row1=this.row1/this.row2}"} } ); то есть обновить поля по каким-то условиям причем частью полей из этого же документа
Denis
День добрый! Есть ли в yii2 возможность реализовать для монго колллекций фильтр для поля в коллекции где хранится массив айдишников на наличие нужного нам айди? Пример чтобы понятнее: есть поле managers в коллекции organisations. Там массив id юзеров, надо вытащить из коллекции organisations только те документы где в этом массиве managers есть id текущего юзера. Такой in наоборот))
Aleksandr
.find({ managers: id })
Denis
.find({ managers: id })
во фрейме такого нет))
Aleksandr
Где?
Denis
yii2
Aleksandr
Файнда нет во фреймворке?
Denis
Файнда нет во фреймворке?
это все select обрабатывает, сейчас себя еще раз проверю)
RapidCodeLab
усе тама есть https://www.yiiframework.com/extension/yiisoft/yii2-mongodb/doc/api/2.1/yii-mongodb-collection#find()-detail
Даниил (Onix)
ой, не тот чат, простите
Denis
во фрейме такого нет))
а как в самой монге такое написать? для интереса
Denis
Вот так написал не работает
Dmitryi
Привет подскажите пожалуйста есть шардированый кластер всего 3 шарда по 3 ноды. Сделал remove документов но место не свободилось вычитал что с этим может помочь операция compact запустив ее на одной из secondary нод место не освободилось. Подскажите я может что-то делаю не так ?
RapidCodeLab
https://docs.mongodb.com/manual/reference/operator/query/in/#use-the-in-operator-to-match-values-in-an-array
RapidCodeLab
а как в самой монге такое написать? для интереса
https://university.mongodb.com/ вот отсюда лучше начать, чтоб понимать хоть примерно, что монго умеет. Ну и гугл находит ответы моментально на все вопросы по монге
RapidCodeLab
Спасибо огромное!
к тому же у вас массив ObjectId, а вы ищете string
Denis
Но там стринги а не Oid
RapidCodeLab
а, ну ок, странный подход конечно, но фиг с ним
Denis
а, ну ок, странный подход конечно, но фиг с ним
вот что внутри, не я правда составлял структуру((
RapidCodeLab
обычно массив objectID хранится в таких местах, почему там string ? и string ли там вообще, не разбираюсь в этих GUI