Rodion
Уважаемые знатоки, скажите, актуальная версия MongoDb уже может гарантировать консистентность (C из CAP) при использовании в распределенной системе?
Андрій
Привет, дайте совет работы с бд, впервые работаю. Написал мобильное приложение и хочу для категорий пользователей выводить разные магазины они закреплены за пользователями и товары, например 1 видит 5 магазинов с товарами, второй другие 5 и тд. ВОПРОС: как в бд правильно это организовать для каждого пользователя своя коллекция с товарами или прям все товары в одной коллекции а при запросе просто фильтр товаров что принадлежат конкретному магазину? И влезет в 1 коллекцию к примеру 15000 товаров(описание просто 10 строк текста к примеру)
Nick
Андрій
idk
zEvilz
всем привет. есть еще какие зеркала монги для рф кроме того, что в закрепе?
2 пакета чет не находит там
Err:1 https://mirror.db-ai.co/apt/debian buster/mongodb-org/5.0/main amd64 mongodb-database-tools amd64 100.5.4
404 Not Found [IP: 193.200.16.49 443]
Err:2 https://mirror.db-ai.co/apt/debian buster/mongodb-org/5.0/main amd64 mongodb-mongosh amd64 1.5.1
404 Not Found [IP: 193.200.16.49 443]
Yaroslav
Paul
Всем привет! Пытаюсь подключиться к БД, но ловлю ошибку. В чем может быть проблема?
Или это общий блок на рашку за вторжение?
Alexandrr
Paul
Paul
Еще вопросик имеется. Можно-ли как-то генерировать _id только в числовом формате? Как я понимаю, он просто хешируется, но при поиске 'findById' не отдаёт нужного результата.
Тогда как можно привести число в ObjectID?
Alexandrr
Paul
Может есть конкретная ссылка?
Alexandrr
Может есть конкретная ссылка?
https://www.google.com/search?q=set%20custom%20_id%20mongodb&ie=utf-8&oe=utf-8&client=firefox-b-m
Демидовец
привет
достаю данные:
const materials = await MaterialModel.aggregate([
{
$lookup: {
from: "comments",
localField: "_id",
foreignField: "material_id",
as: "comments",
pipeline: [
{
$project: {
_id: 1,
},
},
],
},
},
]);
на выходе получаю:
[
{
// прочие поля
"comments": [
{
"_id": "62dd23636ba916f5ba2b5555"
},
{
"_id": "62dd23636ba916f5ba2b5556"
}
]
},
]
как сделать так чтобы в "comments" был массив строк из id, а не массив объектов:
"comments": [
"62dd23636ba916f5ba2b5555",
"62dd23636ba916f5ba2b5556"
]
Демидовец
пока только вариант через js, но пахнет костылем
Yaroslav
привет
достаю данные:
const materials = await MaterialModel.aggregate([
{
$lookup: {
from: "comments",
localField: "_id",
foreignField: "material_id",
as: "comments",
pipeline: [
{
$project: {
_id: 1,
},
},
],
},
},
]);
на выходе получаю:
[
{
// прочие поля
"comments": [
{
"_id": "62dd23636ba916f5ba2b5555"
},
{
"_id": "62dd23636ba916f5ba2b5556"
}
]
},
]
как сделать так чтобы в "comments" был массив строк из id, а не массив объектов:
"comments": [
"62dd23636ba916f5ba2b5555",
"62dd23636ba916f5ba2b5556"
]
Через pipeline + map
Yaroslav
Тебе проще перебрать уже готовый массив в materials
Yaroslav
Дима
Как сделать чтобы вернулось не более 200 последних объектов?
Pasha
Ребята,всем привет. Не могли бы вы немного подсобить. Впервые столкнулся с понятием роли, и не могу понять как поступить. Мне по сути надо создать классического админа (чтение - удаление) в одной базе, как мне правильно сформировать db.createRole ?
Дима
Как через updateMany обнулить массив?
Miroslaw
Max
Всем привет. Есть модель User и Project. У User есть поле favourites - массив из ref Project (ObjectID). Как мне перед удалением Project удалить его reference у всех юзеров из поля favourites? Слышал про pre и post, но так и не понял как их использовать для моего случая.
winterfall
Pre & Post - история из монгуза. Это мидлвары, которые выполняются перед и после определённого действия - того, на какое настроишь мидлвару
В принципе, звучит как действенный вариант, если монгуз есть в твоём стеке)
Max
winterfall
Не могу ничего подсказать по поводу удаления ON CASCADE, или типа того, лучше в гугл обратиться. Но если что, всегда есть вариант камнем и палкой - в достать все связанные ID, и удалить их напрямую
Max
Олег
Здравствуйте подскажите пожалуйста, если массив (подчёркнутый красным) имеет значения он по ним находит но если массив со значениями пустой, мне монго возвращает пустой массив, могу ли я как-то сделать так что когда массив значений пустой оно не обращало на него внимание и искало по категория(подчёркнуто зелёным), спасибо))
yopp
Привет!
Я обновил зеркало оффрепозитория до актуальной версии 6.0. Плюс добавил инструкции по установке пакетов и зеркало pgp ключей.
* Репо: https://mirror.db-ai.co/
* Инструкции: https://mirror.db-ai.co/_/install
* Ключи: https://mirror.db-ai.co/pgp/ (зеркало pgp.mongodb.com)
Пока инструкция только для 6.0, чуть позже добавлю для 5 и 4 версий. Пока вы можете заменить 6.0 на 5.0 во всех примерах.
Если у вас возникают проблемы с репозиторием, проверьте что на сервере добавлены pgp ключи. Для Red Hat систем потребуется изменить путь к pgp ключам с https://www.mongodb.org/static/ на https://mirror.db-ai.co/pgp/
yopp
Eфим
всем привет, подскажите как искать в питоне конструкцию {'_id': ObjectId('62d42b36798c6d3866c94242'), 'e': 34900163, 'factors': {'f': 910, 'v': 3.85, 'p': 0, 'pt': '0'}, 'countAll': 124}
мне надо найти
Eфим
factors ''f''
Eфим
ev_collect2 = (collectinS.find_one({'e': ev_indi, 'factors':{'f':fac}}))
Eфим
вот так пробую но не получается
yopp
Eфим
тоже не проходит
Alexandrr
Nick
Nick
Alexandrr
Maxim
всем привет не могу скачать ключи из директории /pgp/
error: 502
Maxim
подскажите пожалуйста решение
Andrey
Alexandrr
Нет
значит, как выше написал пробуй
Andrey
Pavel
Коллеги, подскажите пожалуйста, как правильно настроить монгу =))) что то она у меня захлебывается, у меня много агрегирущих запросов и всего один инстанс. С чего бы мне начать? Где почитать про планы оптимизаций, как бы выяснить правильность построения запросов? =)) киньте книгой/ссылкой, что то по документации сделал что смог, расставил индексы, но как все тюнить что то не очень пока понимаю =))
Alexandrr
Alexandrr
Zahra
Hello everyone
Pavel
Philipp
Ребят, запускаю стресс тесты и PyMongo начинает абортить транзакции. Вроде как, проблема в недостаточном transactionLifetimeLimitSeconds. Я использую образы bitnami/mongodb-sharded. Как я понял из доков не шардовой монги, можно увеличить время транзакции при старте контейнера используя переменную среды - MONGODB_EXTRA_FLAGS='--transactionLifetimeLimitSeconds=480'. Но с шардом такое не прокатывает. Как быть?
yopp
Jasur Sharofiddinov
hello , can we search any field from whole MongoDb database, not only from one collection?
Alexandrr
Пока что спамлю локустом создание документов через API на основе FastAPI. Потом буду ещё небольшие файлы в GridFS писать (знаю, что не поддерживает транзакции), но пока без них. Пока что в транзакции всего по 2 операции, создать документ с информацией о файле, добавить в документ с инфой о проекте ссылку на новый файл.
я разделил на 2 типа транзакции в монго у себя:
1. для юзеров - юзер коннекты, таймауты везде не более 5 секунд
2. для обновлений коллекций (таблиц) - таймауты подключения 300 сек
если у вас не все обрабатываются запросы и копится очередь, то коннекты могут подвисать, а так как они в очереди, то время истекает и они завершаются с исключением timeouterror
пример такой:
.connect('127.0.0.1', port=58999, socketTimeoutMS=5000, connectTimeoutMS=5000, serverSelectionTimeoutMS=5000, waitQueueTimeoutMS=15000)
.connect('127.0.0.1', port=58999, socketTimeoutMS=300000, connectTimeoutMS=300000, serverSelectionTimeoutMS=300000, waitQueueTimeoutMS=300000)
п.с.
отталкивался ещё от того, что чаще всего встречал в практике.
так же, ты не написал, с каким исключением у тебя обваливаются коннекты, так что можно только гадать
Pavel
Alexander
Alexander
Pavel
но в целом мне за мою многолетнюю практику чет такой задачи не встречалась искать сразу во всей БД по всем таблицам значение
Alexander
Pavel
но все равно чтобы искать по полям например в эластике я значения все в одно поле search конкатенировал, правда не уверен что это было корректно, но оно работало как мне кажется чуть лучше и проще запросы можно было строить
Ruslan
Почему в сфере казино часто используются трекеры которые делают скрины екранов?
Abdulaziz
Здравствуйте, хотел имплементить фильтр + поиск, в реквесте принимаю 3 массива (categories, brands и title), нужно искать по этим данным, вот так выглядит запрос и ошибка
Abdulaziz
Abdulaziz