dnacd 🦜
Yehor
не совсем понятно, но спасибо попробую еще покопать
dnacd 🦜
dnacd 🦜
если найду
Yehor
буду очень благодарен
Yehor
спасибо большое
Eva🇺🇦
если филдом является объект, поиск по этому филду долгий и нельзя индексировать его, да?
yopp
Anton
Всегда задавался вопросом - если ObjectId это хэш, то как мы можем так быстро получить timestamp с этого хэша🤔🤔
Anton
Ведь процесс формирования хэша односторонний - хэш можно сформировать из исходных данных, а обратное невозможно за разумное время
Влад
Привет. Как отфильтровать из подобного листа
"prices": [
{
"dist_id": "2",
"price": 170.1303,
"quantity": 31,
"delivery_days": 3,
"warranty": 12
},
{
"dist_id": "1",
"price": null,
"quantity": null,
"delivery_days": 0,
"warranty": 12
}
],
только объекты у которых есть price и quantity, а далее получить объект с наименьшей price? Всем спасибо.
yopp
Привет. Как отфильтровать из подобного листа
"prices": [
{
"dist_id": "2",
"price": 170.1303,
"quantity": 31,
"delivery_days": 3,
"warranty": 12
},
{
"dist_id": "1",
"price": null,
"quantity": null,
"delivery_days": 0,
"warranty": 12
}
],
только объекты у которых есть price и quantity, а далее получить объект с наименьшей price? Всем спасибо.
Отфильтровать можно с помощью $filter, а выбрать наименьший с помощью $reduce
https://www.mongodb.com/docs/manual/reference/operator/aggregation/filter/
https://www.mongodb.com/docs/manual/reference/operator/aggregation/reduce/
Влад
Тимур
из-за чего такая ошибка на сайте монго?
Alex
Привет. Как отфильтровать из подобного листа
"prices": [
{
"dist_id": "2",
"price": 170.1303,
"quantity": 31,
"delivery_days": 3,
"warranty": 12
},
{
"dist_id": "1",
"price": null,
"quantity": null,
"delivery_days": 0,
"warranty": 12
}
],
только объекты у которых есть price и quantity, а далее получить объект с наименьшей price? Всем спасибо.
можно еще $sort по price и limit = 1
🅰️nimeCoder
Тимур
понял, спасибо
Null
5.0.9 (May 31) • 4.4.15 (June 21) ◦ 6.0.0-rc11 (Jun 24)
ℹ️ Вышли версии 5.0.9, 4.4.15, 4.2.21 и 6.0.0-rc11
ℹ️ Добавлено зеркало официального репозитория: https://mirror.db-ai.co
• Зеркало официального репозитория доступное из СНГ
• Документация
Stable: 5.0.9 (May 31), Unstable: 6.0.0-rc11 (Jun 24)
Bugfix: 4.4.15 (June 21), Legacy: 4.2.21 (Jun 21)
☠️ 4.0.28 (Apr '22) 3.6.23 (Mar ’21), 3.4.24 (Jan ‘20)
Bro
M1 поддержку не добавили?
Yehor
Alexander
yopp
монга для js использует firefox esr, а туда поддержку apple silicon добавили относительно недавно
yopp
https://fastdl.mongodb.org/osx/mongodb-macos-arm64-6.0.0-rc11.tgz
Bro
yopp
А что, с розеттой какие-то проблемы?
Alexander
Alexander
но и база маленькая)
yopp
Добавил зеркало документации: https://docs.db-ai.co/docs/manual/
yopp
Вы имеете ввиду TLS сертификат? Если да, то подскажите пожалуйста какой у вас браузер и как именно он на сертификат ругается?
yopp
Спасибо, но пока так, да.
У 10gen очень сложный и местами сломанный пайплайн для сборки документации, сил хватило только на доку к серверу.
Для шелла и утилит попробую собрать через пару недель
Calipso
привет 👋🏻 у кого-нибудь есть экземпл как создавать структуру хранения данных монго в фаст апе?
Calipso
Alexander
Calipso
окей, попробую отразить задачу более детально. мне нужно связать в compose два микросервиса: fastapi и mongodb. необходимо сделать так, чтобы при первом запуске compose создавалась коллекция для хранения данных в mongodb
Calipso
я делал этот на других бд: postgres, mysql, но с mongodb не могу разобраться
Alexander
Calipso
о как! спасибо за пояснение. попробую
Alexander
Структуру ты можешь хранить в словаре, или в через BaseSettings в .env
Alexander
о как! спасибо за пояснение. попробую
Ты можешь написать скрипт, который будет создавать индексы в нужных тебе коллекциях, при старте ФА. Но обрати внимание, что например pymongo создаёт ленивое подключение, и просто инициация бд или коллекции не создаёт объектов в базе. Т.е. надо обязательно записать документ в базу, чтобы база или коллекция создались
Calipso
Alexander
спасибо
Посмотри в сторону ODM возможно там уже решено часть задач
Calipso
я нашёл пример. думаю он мне поможет
https://github.com/AtamanKit/fastapi_users_docker
..
Добрый день, можете пожалуйста помочь с установкой
получаю ошибку mongod.service: Main process exited, code=exited, status=14/n/a
..
список устанавливаемых пакетов на ubuntu 20.
mongodb-database-tools_100.1.0_amd64.deb
mongodb-org-database-tools-extra_4.4.0_amd64.deb
mongodb-org-server_4.4.0_amd64.deb mongodb-org-tools_4.4.0_amd64.deb
mongodb-org_4.4.0_amd64.deb
mongodb-org-mongos_4.4.0_amd64.deb
mongodb-org-shell_4.4.0_amd64.deb
Alexander
Ребят, а если у вас есть модель с множеством relations, для примера
House: {
owner: ObjectId,
books: [ObjectId],
pets: [ObjectId]
}
И вы хотите получить все Дома, в которых такой-то овнер, такие-то книги, и такие-то животные, то Монго эту проблему решить не способна получается? Я должен сначала запросить все House, сделать population, и уже на уровне приложения отфильтровать нужные?
yopp
Bro
Ребят, а если у вас есть модель с множеством relations, для примера
House: {
owner: ObjectId,
books: [ObjectId],
pets: [ObjectId]
}
И вы хотите получить все Дома, в которых такой-то овнер, такие-то книги, и такие-то животные, то Монго эту проблему решить не способна получается? Я должен сначала запросить все House, сделать population, и уже на уровне приложения отфильтровать нужные?
Посмотри aggregation framework mongodb
Bro
Там есть $lookup
yopp
Ребят, а если у вас есть модель с множеством relations, для примера
House: {
owner: ObjectId,
books: [ObjectId],
pets: [ObjectId]
}
И вы хотите получить все Дома, в которых такой-то овнер, такие-то книги, и такие-то животные, то Монго эту проблему решить не способна получается? Я должен сначала запросить все House, сделать population, и уже на уровне приложения отфильтровать нужные?
Вам проще сначала загрузить нужных owner и pet, а потом по их _id найти нужные дома
Sherlock
raise ServerSelectionTimeoutError(
Почему не подключается к серверу?
Alexander
Вам проще сначала загрузить нужных owner и pet, а потом по их _id найти нужные дома
Я тоже так думал. Но если представить что у меня в модели House очень много разных свойств(рефов), то мне нужно делать очень много запросов к ним по отдельности, прежде чем я соберу список House который мне нужен.
Хотелось бы что бы за эту логику отвечала база, а не приложение.
Вообще мне кажется что запрашивать данные сразу фильтруя по разным рефам - это довольно базовый механизм, вместо того что бы делать это в приложении.
Sherlock
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: ac-qvnojit-shard-00-02.i1galhp.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired
Как можно исправить
Bro
Ребят, а если у вас есть модель с множеством relations, для примера
House: {
owner: ObjectId,
books: [ObjectId],
pets: [ObjectId]
}
И вы хотите получить все Дома, в которых такой-то овнер, такие-то книги, и такие-то животные, то Монго эту проблему решить не способна получается? Я должен сначала запросить все House, сделать population, и уже на уровне приложения отфильтровать нужные?
Вообще философия монги в том чтобы не было такой нормализации данных как в реляционных бд 3nf это все. А то что нужно по максимуму хранить все в формате одного документа
yopp
yopp
notBefore=Jun 24 14:18:17 2022 GMT
notAfter=Sep 22 14:18:16 2022 GMT
Проверьте что у вас на машине откуда вы подключаетесь часы верно установлены
Sherlock
yopp
Sherlock
Sherlock
raise ConfigurationError(str(exc))
pymongo.errors.ConfigurationError: The resolution lifetime expired after 21.620 seconds: Server 192.168.67.9 UDP port 53 answered The DNS operation timed out.;
Как можно это исправить?
Via funky
Привет ребят. Вопрос, насчет агрегации... Как сравнить данные "строки" после unwind'a, с элементами массива, который был собран в предыдущем шаге агрегации через addfield ? Такое чувство что массив не виден для сравнения... Пытаюсь сделать через $match так: {
"string":{$elemMatch:{$eq:"$arrayofstrings"}}
}
Anton
Anonymous
Ребят, а можно вопрос не по теме чата?
Антон
Всем привет! Экспериментирую с проектом https://github.com/mohamedsamara/mern-ecommerce поднял его дома на компе с виндой ,всё ок. На удалённом сервере билдится, но при старте ругается на /server/routes/api/product.js:35
productDoc?.brand === null || productDoc?.brand?.isActive === false;
^
SyntaxError: Unexpected token '.'
ранее productDoc определяется так:
const productDoc = await Product.findOne({ slug, isActive: true }).populate(
{
path: "brand",
select: "name isActive slug",
}
);
захожу в монгодб на сервере, есть нужная база, захожу в базу, есть таблицы (коллекции), в чём может быть проблема?
🅰️nimeCoder
Возможно проблема в старой версии ноды
🅰️nimeCoder
Вполне возможно что это 8-12 нода, и она не поддерживает ?.
ZDev | Разработчик
Как установить время жизни документа? И как его, если что можно обновить?
Илья
ZDev | Разработчик
странный вопрос, о чем ты
Почему же странный? У документа, как читал, можно установить время "жизни", затем он удаляется.
ZDev | Разработчик
Но я незнаю, как его обновлять.
ZDev | Разработчик
yopp
403 Error
Если не доступен https://www.mongodb.com/docs/manual/tutorial/expire-data/
То зеркало https://docs.db-ai.co/docs/manual/tutorial/expire-data/
ZDev | Разработчик
Anonymous
Тхах) На бесплатном хостинге держат. Не удивительно