yopp
Но вообще это явный пример того как динамические ключи делают больно. Не надо использовать динамические ключи
yopp
Гораздо проще сделать group по _id: type, status и $sum: 1
Zloy-Dobry
ну ясно вощем оставлю как есть
Zloy-Dobry
не красиво только что type в id
Zloy-Dobry
_id: type1,
status1: ..
status2:..
️lefrotite
Как можно добавить элемент к уже существующему словарю (dict) в MongoDB? Нужен какой-то метод, подобный $pull, только для {словарей}
yopp
$set: {“foo.newkey”: bar}
️lefrotite
Тогда остальные элементы очищаются, пробовал
yopp
Либо вы не корректно сформулировали проблему, либо вы что-то делали не так.
https://docs.mongodb.com/manual/reference/operator/update/set/#behavior
Slava
тогда пример запроса в студию)
SvPupok
Коллеги, подскажите, верхний предел оплога в 50 гб жестко лимитирован?
Max
Нет
Max
Ставьте в крнфиге сколько надо
Denis
по умолчанию он берется в виде 10% от размера диска на котором расположена дата дир но не более 50 гигов и не менее 2. Вроде так
Sergey
Лучше его делать как минимум х1. 5 промежутка между бекапами.
Sergey
Во всяком случае, на hidden-реплике
SvPupok
SvPupok
https://docs.mongodb.com/v3.4/core/replica-set-oplog/
Алексей
всем привет, подскажите пожалуйста, в чем проблема
Алексей
ALEX
Запускай MongoDB (mongod) с командой
—auth
или пропиши в настройках
security:
authorization: enabled
Потом перезагрузи
https://docs.mongodb.com/v3.6/tutorial/enable-authentication/#re-start-the-mongodb-instance-with-access-control
Алексей
ALEX
я так и запускаю, выводит эту ошибку, хотя я авторизуюсь, ну на этом скрине все видно
Пользователь myUserAdmin имеет только привилегии для управления пользователями и ролями. Как myUserAdmin, если вы пытаетесь выполнить любые другие операции, такие как чтение из коллекции foo в тестовой базе данных, MongoDB возвращает ошибку.
The myUserAdmin user only has privileges to manage users and roles. As myUserAdmin, if you attempt to perform any other operations, such as read from a foo collection in the test database, MongoDB returns an error.
https://docs.mongodb.com/v3.6/tutorial/enable-authentication/#create-additional-users-as-needed-for-your-deployment
Алексей
ALEX
Спасибо
нужно Другую роль поставить, или добавить к этой.
Не за что. Русских мануалов нормальных я мало встречаю, а с чтением английского на лету тоже проблема))
ALEX
ALEX
так что я эту проблему прошел мимо))
Mykola
Как написать запрос что бы заметчить 2 из array в wallets ?. Если бы wallets: 2 то тогда данный запрос сработал.
Zloy-Dobry
Что за монера, код, блять в сриншотах кидать
Mykola
Zloy-Dobry
Главное удобно
Zloy-Dobry
А вот если предположить, что тебе хотять помоч, это придется, место того что бы скопривать и прогнать у себя, писать все это руками
Mykola
Ruslan
камрады, я составил поле из ФИО и надо искать по ключениям, например, "Петров Василий" должен выдаваться на запрос "вас", поигрался, но выдаётся только по полным словам, т.е. на "василий"
Ruslan
это фича? или я просто неправильно индекс готовлю?
Zloy-Dobry
/.*вас.*/i
Zloy-Dobry
Не?
Ruslan
регекспом?
Ruslan
ну, ок
Arthur
Всем привет! Подскажите пожалуйста, возможно ли чтобы mongoose.Aggregate возвращал не массив, а объект?
Arthur
Другой вопрос: в mongoose.aggregate есть $project , в котором можно указать field:"$anotherField". Таким образом в field будет значение поля anotherField
Есть ли подобное для mongoose.find или findOne ?
Спасибо
Zloy-Dobry
А открыть доку?
Arthur
открывал - не нашел. написал сюда
yopp
Alex
А как же индексы триграмные ?
Alex
И прочие прелести
Alex
Которых в монге нет
Alex
:)
Алексей
Всем привет, у меня все работало нормально, но после того как поставил —auth, mongo стал выплевывать unknown modifier $pushall
Petro
Всем привет, вопрос, как можно сделать match филда по филду. Т.е.
{
$match: {
'$someField': {$gt: {'$someField2'}}
}
}
Petro
Спасибо уже подсказали, через $cmp
Rodion
Всем привет
Подскажите, как правильно мне поступить
У каждого документа в коллекции нужно обновить элеметны массива - удалить тяжелые записи и посавить признак, что эта запись у элемента существовала,
Я написал вот такой запрос и он работает, но очень медленно.
db.bankGuarantee.find({"is_cleaned" : false}).forEach((doc)=>{
var arr = doc.agreementDocuments.attachment;
if (arr != undefined) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].cryptoSigns != undefined) {
arr[i].is_signed = true;
delete arr[i].cryptoSigns;
}
}
}
doc.is_cleaned = true;
db.bankGuarantee.save(doc);
});
Как можно это написать , чтобы работало быстрее?
Или может это как то можно реализовать через update?
yopp
А что это делает?
yopp
Удаляет поля?
Rodion
Да, удаляет поля и ставит признак, что оно раньше было у этой записи
yopp
3.6+
Rodion
Спасибо! Почитаю
yopp
В arrayFilters делаешь cryptoSign: $exists а в update $unset и $set с $[filterName] вместо $
Anonymous
Не подскажите, могу сделать апгрейд с 2.4 до 3.2 безболезненно?
Pavel
а по мануалам не получается?
Pavel
нам с 2.6 до 3.2 приходилось
Обновились без проблем
Anonymous
Anonymous
Линк
Pavel
Upgrade mongodb в гугле
Pavel
Первая ссылка
Pavel
Выбирать по очереди только
Pavel
С 2.4 на 2.6
Pavel
Потом до 3.0
Pavel
Потом до 3.2
Nick
http://mongoosejs.com/docs/api.html#model_Model.update
Nick
никаких each, просто обыкновенный апдейт над коллекцие по условию
Nick
четный день месяца?
Nick
https://docs.mongodb.com/manual/reference/operator/query/where/
Nick
можно передат ьполноценный js скрипт для обработки
Nick
ну не совсем полноценный
Nick
и такие запросы не будут использовать индексы, поэтому если опреации должны выполнятьс болеменее част ои за вменяемое время, то стоит изменить структуру данных