Anonymous
yopp
Андрей Михайлович
У монги есть ops manager. Но мне было бы удобнее всё то же видеть в grafana. Есть способ? Подскажите как?
Милена
У меня не запускается сервер, тк захожу не с того IP. Подскажите, пожалуйста, как это пофиксить
Милена
Не могу понять где у меня конфигурационный файл
Thunder
Артем
Всем привет.
Можете помочь с запросом, который должен делать "вставить если нет, но если есть, то обновить, только если дата больше чем та что есть"?
Что-то голову сломал. (С монгой очень давно не работал)
Артем
Артем
Thunder
Милена
Ravshan
Айпишку в атласе добавь или убери фильтр по айпи
Ravshan
Написано же
Артем
не находит, пробовала
Да, там в логах написано про атлас.
Кст почему бы просто не развернуть в докере? Было бы проще же.
Thunder
переведите нормально текст, если не понимаете что написано
Артем
Всем привет.
Можете помочь с запросом, который должен делать "вставить если нет, но если есть, то обновить, только если дата больше чем та что есть"?
Что-то голову сломал. (С монгой очень давно не работал)
Товарищи, вопрос серьезный, ибо я уже начал вы*бываться в рабочем чатике что такое провернуть можно, а потом погряз в доке и поплыл.
Предполагал что-то типа db.coll.replaceOne({value: 121}, {...}, {upsert: true, $min: {data: datanow}});
Милена
Артем
Thunder
Nick
Nick
Thunder
Stroitelev
Подскажите, как в mongo принято действовать с case sensitive данными?
Есть два текстовых поля, по которым необходимо строить индекс. Данные могут приходить в разных кейсах и нужно уметь быстро по ним искать. Одно из полей может содержать данные на экзотических языках (вьетнамском, корейском, японском и т.д.)
Пока вижу такие пути:
1) Принудительно приводить все данные к единому кейсу перед записью, строить индекс;
2) Делать доп атрибут, содержащий копию данных в lowerCase и строить по нему индекс;
3) Строить индекс с учётом collation и затем выполнять запросы с указанием collation. В этом варианте смущает, что данные могут быть в locale != 'en'
Назар
Nick
Stroitelev
Nick
Полное совпадение
Тогда рядом поле с нижним регистром и обычный индекс по нему самое простое и стабильное решение
Air
После пополнения данными ранее созданный индекс надо пересоздавать?
Nick
Thunder
Привет, кто знает как элегантно сделать апдейт значения в таком виде, если 1, сеттим -1, если -1, сеттим 1 ?)
Nick
Aryn
Подскажите, как сделать поиск, если документа нет в другой коллекции?
Например, коллекции main:
_id: 1
_id: 2
_id: 3
Коллекцмя other:
m_id: 2
Нужно достать все документы из коллекции main, которых нет в other.
-
Aryn
Дурак из фильма
Подскажите как читать, ну и исправить потом такую ошибку?
Выполняю команду/
# mongorestore --db door --verbose /dump/door
Получаю в конце
Failed: door.users: error reading database: not authorized on door to execute command { listCollections: 1, cursor: { batchSize: 0 }, $db: "door" }
Есть в дампе каталог door с джейсончиком и бсончиком users, но как, блин, дамп то влить на новом хосте?
-
-
-
Свои значения подставь
Дурак из фильма
Логин и пароль откуда? Я не задавал в новой систеем, а в старой не знаю их
-
Дурак из фильма
А если в конфигах аппки найти креды от того юзера, который ходит в базу, это подойдёт? Или это будет другое?
-
NULL
Подскажите как пофиксить фильтр для поиска документов
Вышел примерно такой фильтр:
filter1 := bson.M{
"_id": oid,
"$or": bson.A{
bson.M{"field1": bson.M{"$eq": 0}},
bson.M{"field2": bson.M{"$lte": mongodb.ToMongoDateTime(now.UTC())}},
bson.M{
"$and": bson.A{
bson.M{"$expr": bson.M{"$ne": bson.A{bson.M{"field4": primitive.Null{}}, true}}},
bson.M{"$expr": bson.M{"$ne": bson.A{bson.M{"field2": primitive.Null{}}, true}}},
bson.M{"field4": bson.M{"$lte": "field2"}},
},
},
},
}
У меня не работает блок $and в конце
Основная идея этого блока подобрать нужный документ по фильтру, но при использовании lte/gte... подбирают документы в которых нету одного из полей
Nick
Подскажите как пофиксить фильтр для поиска документов
Вышел примерно такой фильтр:
filter1 := bson.M{
"_id": oid,
"$or": bson.A{
bson.M{"field1": bson.M{"$eq": 0}},
bson.M{"field2": bson.M{"$lte": mongodb.ToMongoDateTime(now.UTC())}},
bson.M{
"$and": bson.A{
bson.M{"$expr": bson.M{"$ne": bson.A{bson.M{"field4": primitive.Null{}}, true}}},
bson.M{"$expr": bson.M{"$ne": bson.A{bson.M{"field2": primitive.Null{}}, true}}},
bson.M{"field4": bson.M{"$lte": "field2"}},
},
},
},
}
У меня не работает блок $and в конце
Основная идея этого блока подобрать нужный документ по фильтру, но при использовании lte/gte... подбирают документы в которых нету одного из полей
перепишите запрос в стандартный формат для монгошела и в нем думаю сразу все станет понятно что не так работает. Как оттестируйете переводите обратно в нечитаемый код
Nick
Подскажите как пофиксить фильтр для поиска документов
Вышел примерно такой фильтр:
filter1 := bson.M{
"_id": oid,
"$or": bson.A{
bson.M{"field1": bson.M{"$eq": 0}},
bson.M{"field2": bson.M{"$lte": mongodb.ToMongoDateTime(now.UTC())}},
bson.M{
"$and": bson.A{
bson.M{"$expr": bson.M{"$ne": bson.A{bson.M{"field4": primitive.Null{}}, true}}},
bson.M{"$expr": bson.M{"$ne": bson.A{bson.M{"field2": primitive.Null{}}, true}}},
bson.M{"field4": bson.M{"$lte": "field2"}},
},
},
},
}
У меня не работает блок $and в конце
Основная идея этого блока подобрать нужный документ по фильтру, но при использовании lte/gte... подбирают документы в которых нету одного из полей
и да сравнение с нуллом не тоже самое что отсутствие поля
Egor
А я могу прямо в query (который find, НЕ aggratate) сконвертить миллисекунды в дату? У меня на руках миллисекунды и с ними надо делать $gte/$lt для timefield в time series collection? Как использовать непосредственно миллисекунды? $toDate, как я понял, работает только в aggregate.
Tetra
Кылычбек
Всем привет, кто знает как добавить analytics node и мне нужно конфигурировать его вместо primary database
Nick
Дурак из фильма
Андрей
Авторизоваться. В тексте ведь написано однозначно.
Андрей
Либо перевалить субд без авторизации в конфиге.
Дурак из фильма
Под каким юзером оно хотя бы по умолчанию ломится? Под root?
Андрей
Ни под каким, ведь авторизация не передается.
Андрей
Nick
Дурак из фильма
-
Оно же явно просит авторизацию
Андрей
Весело 😆 Ресторим базы без ведома ответственных. Передать рутового юзера в монгоресторе, если субд под авторизацией поднята. Если нет доступа к руту и его созданию, а есть доступ в окружение сервера, что просто аутизм какой-то, то увалить инстанс, закоментить авторизацию, и отресторить без авторизации.
Андрей
И создать рута в конечном счете для себя ☝️
Дурак из фильма
Дурак из фильма
Мде. Создал юзера командой
db.createUser({"user": "root", "pwd": "derparol", "roles": [{ role: "dbOwner", db: "door"}, {"role": "readWrite", "db": "door"}]})
Но при заливке дампа теперь другая ошибка про то что аутентификэйшн фэйлд. Хотя пароль и ю.зер тот же
Дурак из фильма
ааа, блин, оно оказывается не применило юзера, я ведь моногошелл запускаю без авторризации и потому оно не хочет создавать юзера.... И как тогда его создать?
2023-07-22T10:31:23.265+0000 E QUERY [thread1] Error: couldn't add user: there are no users authenticated :
Дурак из фильма
Говорят надо убрать параметр --auth при запуске демона. Интересно как это сделать в случае, когда у меня монга в докере )
Дурак из фильма
о, всё встало на свои места. В докер композе был задан юзер оказывается по-умолчанию, а я совсем забыл, что там такие енвы были заданы.
Nurlan
Дурак из фильма
Спасибо за наводки и что не закидали тухлыми помидорами, как бывает в некотрых других комьюнити )
sp
как на 287 строчке после gte правильно прописать значение поля endTime? в таком виде как на скрине это условие не срабатывает
sp
а вот так работает, если указать явно единицу