Emil22878
мне нужно посчтатиь сколько объектов у меня в массиве
Emil22878
я потом понял это , что массив общий а объектов скок это надо узнать
Dmytro
Александр
Коллеги доброго дня, довольно простой вопрос, так как прогуглиные ответы не помогают у меня есть массив объектов у каждого из них есть _id = new ObjectId("63c7c38223f4418ac0fc991f")
- вот такого формата как мне преобразовать дабы сравнить с 63c7c38223f4418ac0fc991f?? или второй id преобразовать как то
Валерий
подскажите как получить поля удаляемых документов
например удаляем пять документов
возвращает удалено 3 с ид + имя 2 не найдено
Dmytro
Andrey
Всем привет!
При выполнении db.adminCommand({listDatabases: 1}) выводятся только не пустые БД.
При выполнении db.adminCommand({listDatabases: 1, filter: {empty: true}}) выводится пустой список БД, хотя одна пустая БД есть и я выполнил use <db_name>.
Вроде бы фильтр empty:true намекает, что будут выведены пустые базы, но это не так.
Подскажите, пожалуйста, как вывести пустые БД?
"
Is there any way to transform data from any db to mongo without coding or stored data manually
Vladyslav
"
Dmitry
How
It is possible to load data through mongodb compass
Dmitry
Dmitry
Yury
Подскажите в агрегациях { $match: { $text: ... } } нельзя использовать, кроме как в начале самой агрегации?
Dmitry
Artem
Привет.
Подскажите корректный способ удаления большого набора записей из большой коллекции по фильтру неиндексированного поля. Поле фильтрации содержит дату. Запросы выполняются долго.
Может есть какой нибудь вариант скрипта когда сперва выполняется запрос на выборку а потом удаляем по id найденым и все это в цикле до последнего батча поискового запроса?
Artem
Nick
Andrey K.
Подскажите, пжл, по паймонго, где-то косяк...
Делаю две временных засечки
min_timestamp = ObjectId.from_datetime(datetime.datetime.now())
time.sleep(1)
max_timestamp = ObjectId.from_datetime(datetime.datetime.now())
контрольный запрос по случайному айди работает
print (list(my_collection.find({"_id": ObjectId('63516e23457b7c1b6aaef61b')})))
А вот так не работает, когда я фильтрую по этим засечкам
print (list(my_collection.find({"_id": {"$gte": ObjectId(min_timestamp), "$lt": ObjectId(max_timestamp)}})))
непонятно - по идее, должны быть айдишники в заданном диапазоне, т.к. наполнение БД идет вот прямо в данный момент
Nick
Nick
и для тестов используйте фиксированное время, а не вызов now
Andrey K.
Alexandrr
Artem
Alexandrr
Да такой вариант тоже рассматриваю, спасибо
при таком решении, если нагрузка большая на базу, коллекция может быть недоступна порядка 5-7 секунд, стоит отловить исключения в этот момент, что бы пользователи не испытывали дискомфорта
Artem
Alexandrr
Artem
Alexandrr
один мудрец изощрился вообще прокидывать через трубы между процессами и шару памяти в приложении, менять конфиг приложения на лету, при этом просто изменяя название переменной хранящей название коллекции, на новое название коллекции "новая_2", старая называется "новая_1".
недоступность коллекции при таком способе около 0.001 секунды, но это для какого-то космического владения языком и знанием его исходников
Nick
Murena
Всем привет - подскажите как в монге на лету (во время поиска/запроса) слить две коллекции вместе и делать по ним пагинацию ? Суть в том что есть две коллекции с тем же типом данных и мне нужно делать поиск по двум коллекциям, сортировку и пагинацию по результатам offset + limit, как можно на лету слить эти две коллекции в aggregation (или может есть другой вариант) и сделать по ним пагинацию/сортировку ? В доке не нашел подходящего ничего... подскажите кто шарит как это сделать ? Спасибо.
Murena
не нашел никакого способа как на лету в aggregation добавить данные с другой коллекции, отсортировать данные с двух колекций и вернуть результат, чтоб это все внутри монги сделать.
Nick
Murena
MGS
Приветствую всех, подскажите как можно вывести все строки содержащие все элементы запроса независимо от их расположения?
к примеру у меня есть записи:
Le Paul Vens, 123123
Vens Paul Le , 123123
Vens Le Paul , 123123
person Le Paul Vens, 123123
Denis Melnik , None
мой запрос выглядит следующим образом:
query = {"$text": {"$search": "\"Le Paul Vens\""}}
он выводит все записи где встречается фраза: Le Paul Vens
но мне нужно вывести все строки где встречается фраза Le Paul Vens независимо от расположения каждого слова.
как мне составить запрос?
Alexandrr
MGS
MGS
Alexandrr
Александр
а как в монго можно посчитать кол-во строк, которые удовлетворяют условию? И вообще такое можно сделать?\
Nick
Nick
Это было в агрегации, можно find().count()
Александр
а там какой-то язык для описания условий есть ?
Александр
нашел, спасибо
Aleksandr
Подскажите, пожалуйста, по следующему вопросу: Планирую весь контент сайта разместить в БД MongoDB. Сайт у меня на трёх языках (русский, английский, испанский). Вопрос: нужно ли мне для каждой языковой версии создавать новую базу данных или достаточно в одной БД создавать разные коллекции для каждого языка по отдельности? Как правильнее или удобнее? Спасибо!
Alexandrr
Подскажите, пожалуйста, по следующему вопросу: Планирую весь контент сайта разместить в БД MongoDB. Сайт у меня на трёх языках (русский, английский, испанский). Вопрос: нужно ли мне для каждой языковой версии создавать новую базу данных или достаточно в одной БД создавать разные коллекции для каждого языка по отдельности? Как правильнее или удобнее? Спасибо!
недавно занимался мультиязычностью
задача была - статьи на 4х языках.
с возможностью независимого редактирования и параметров у каждой, все языки должны находиться в 1 объекте, в итоге пришёл к такой структуре:
{uuid: str,
lang_1: {other fields},
lang_2: {other fields},
...
lang_100500: {other fields}}
может есть решения и лучше, но пока не встречал, да и смотря какие задачи проводить требуется с объектами.
лучше исходить от задач и прогонять use-case's, смотря соответствие модели данных
Aleksandr
недавно занимался мультиязычностью
задача была - статьи на 4х языках.
с возможностью независимого редактирования и параметров у каждой, все языки должны находиться в 1 объекте, в итоге пришёл к такой структуре:
{uuid: str,
lang_1: {other fields},
lang_2: {other fields},
...
lang_100500: {other fields}}
может есть решения и лучше, но пока не встречал, да и смотря какие задачи проводить требуется с объектами.
лучше исходить от задач и прогонять use-case's, смотря соответствие модели данных
Это начально условие такое, что все языки должны находиться в 1 объекте? Или так удобнее было делать?
Я то вообще рассматриваю - либо отдельную БД для каждого языка, либо коллекцию для каждого языка.
А тут ты вообще предлагаешь всё в один объект. Даже не думал о таком решении. Надо подумать над таким способом.
Спасибо за вариант!
Alexandrr
yopp
Подскажите, пожалуйста, по следующему вопросу: Планирую весь контент сайта разместить в БД MongoDB. Сайт у меня на трёх языках (русский, английский, испанский). Вопрос: нужно ли мне для каждой языковой версии создавать новую базу данных или достаточно в одной БД создавать разные коллекции для каждого языка по отдельности? Как правильнее или удобнее? Спасибо!
В одной коллекции, локализуемые поля удобнее всего хранить как:
field_i18n: [{lang: "en", value: "hello"}, {lang: "ru", value: "привет"}]
тогда можно использовать индекс field_i18n.lang, field_i18n.value
это самый гибкий из возможных вариантов, так как и хорошо индексируется и позволяет иметь произвольное количество языков и при желании в одном запросе можно сразу сделать fallback на нужный язык
yopp
если у вас много локализуемых аттрибутов, можно попробовать entity-attribute-value схему
dynamic_fields: [{attribute: "greeting", lang: "en", value: "hello"}, {attribute: "greeting", lang: "ru", value: "привет"}, {attribute: "foo", lang: "ru", value: "бар"}]
Aleksandr
Alexander Cheprasov
Всем привет!
Кто знает как делать поиск в монге по полному совпадению в массиве?
Есть запись в базе
{
name: 'test',
array: [{
key: 'test'
}]
}
если я использую весь объект как фильр
.find({
name: 'test',
array: [{
key: 'test'
}]
} )
Не находит запись, как это исправить?
В жини array может содержать N объектов и поиск будет осеществляться по полному совпадению. Это для проверке на полное совпадение
C
Viktar
Alexander Cheprasov
Dmitry
Viktar
Странно. У меня отлично работает. Попробуйте ещё $elemMatch
https://www.mongodb.com/docs/manual/reference/operator/query/elemMatch/
Hannibal
Ребят, как лучше делать админа в MongoDB? Специальное булевое значение в массиве пользователя, прям внутри кода точечно указав айди или токен?
Hannibal
Фронт на Реакте, вместе с MongoDB используется Express
lmn
Проц интел или амд?
В любом случае сли мышка серая то булевое будет хорошим решением а если с блютус то еще надо подумать
Vladyslav
Hannibal
Или чисто потом через path задавать условную роль?
Hannibal
А по умолчанию, в начале юзера делать
Vladyslav
Hannibal
Hannibal
Alexander
Alexandrr
Alexandrr
Pavel
Alexandrr
Составные
ну так делать и нужно, понятное дело, что, что бы распаковать до "определённого уровня", нужно увеличить нагрузку на количество уровней * количество релевантных записей
Alexandrr
например, у нас есть 1 млрд записей с составным индексом: "ar.bt.err", где фильтруемое поле "err", количество операций увеличивается кратно вложенности: 1 * 3 = 3 млрд, если не использовать .skip() или .limit()
курсор будет идти именно 3 млрд раз
если бы индекс был просто "err", то естественно было бы 1 * 1 = 1 млрд.