Vladyslav
Vladyslav
Abdulaziz
Vladyslav
как именно?
https://www.mongodb.com/docs/manual/reference/operator/query/eq/
Abdulaziz
Philipp
В итоге, я так и не смог указать transactionLifetimeLimitSeconds при запуске контейнера через docker-compose. Однако, я решил проверить, что это вообще то что надо. Приконнектился к контейнерам mongo-cfg и mongo-shard (mongos не знает о таком параметре) и вручную установил таймаут:
db.adminCommand( { setParameter: 1, transactionLifetimeLimitSeconds: 480 } )
Ошибки как появлялись, так и появляются. Теперь сижу, думаю, с чего я вообще взял, что проблема была в transactionLifetimeLimitSeconds:
pymongo.errors.OperationFailure: Transaction 11 has been aborted., full error: {
"errorLabels": [
"TransientTransactionError"
],
"ok": 0,
"errmsg": "Transaction 11 has been aborted.",
"code": 251,
"codeName": "NoSuchTransaction",
"operationTime": "Timestamp(1658928464, 2)",
"$clusterTime": {
"clusterTime": "Timestamp(1658928464, 2)",
"signature": {
"hash": "\\xcbZp7\\xc6\\x0f\\x19\\xce\\xf1\\xef~\\x1d\\x8b\\xe91\\x13\\xc9_6\\x0f",
"keyId": 7089060357766906000
}
},
"recoveryToken": {
"recoveryShardId": "shard0"
}
}
Alexandrr
В итоге, я так и не смог указать transactionLifetimeLimitSeconds при запуске контейнера через docker-compose. Однако, я решил проверить, что это вообще то что надо. Приконнектился к контейнерам mongo-cfg и mongo-shard (mongos не знает о таком параметре) и вручную установил таймаут:
db.adminCommand( { setParameter: 1, transactionLifetimeLimitSeconds: 480 } )
Ошибки как появлялись, так и появляются. Теперь сижу, думаю, с чего я вообще взял, что проблема была в transactionLifetimeLimitSeconds:
pymongo.errors.OperationFailure: Transaction 11 has been aborted., full error: {
"errorLabels": [
"TransientTransactionError"
],
"ok": 0,
"errmsg": "Transaction 11 has been aborted.",
"code": 251,
"codeName": "NoSuchTransaction",
"operationTime": "Timestamp(1658928464, 2)",
"$clusterTime": {
"clusterTime": "Timestamp(1658928464, 2)",
"signature": {
"hash": "\\xcbZp7\\xc6\\x0f\\x19\\xce\\xf1\\xef~\\x1d\\x8b\\xe91\\x13\\xc9_6\\x0f",
"keyId": 7089060357766906000
}
},
"recoveryToken": {
"recoveryShardId": "shard0"
}
}
куда ответы от СУБД возвращаются?
Alexandrr
Philipp
Да
Alexandrr
Да
при дебаге, какое исключение возвращается, то что выше?
сам пайтон не обрывает коннект на своей стороне?
Philipp
Надо поднимать локально, смотреть. Сейчас попробую ещё с повторением коммита написать, сбилдить образ и протестировать, если то же будет, запущу в IDE с дебагом.
Alexandrr
Philipp
Alexandrr
FastAPI + Motor
в фастапи тоже логи вроде дефолтные есть, если память не изменяет, попробуй посмотреть туда, поискать исключения там, по ним уже судить нужно, что с коннектами происходит
Alexandrr
FastAPI + Motor
моё подозрение = timeoutError
если так, то используй настройки подключения которые выше писал тебе
Alexandrr
Philipp
Хмм, не уверен, что это так, ведь тогда этот параметр тут вообще ни к чему, ведь всегда ролял бы только таймаут коннекта.
Alexandrr
Philipp
Текс, похоже это была какая-то внутренняя питонячая проблема.
Я переписал код со start_transaction на with_transaction согласно докам и эксепшены ушли:
https://motor.readthedocs.io/en/stable/api-tornado/motor_client_session.html#motor.motor_tornado.MotorClientSession.with_transaction
Тут даже упоминается данная ошибка:
When coro or commit_transaction() raises an exception that includes the "TransientTransactionError" error label, with_transaction starts a new transaction and re-executes the coro.
Philipp
Но код это, визуально, подпортило.
Alexandrr
Scrooge
Всем привет, кто знает как распаковать найденные данные из коллекции mongodb? Например в sqllite когда мы выводим все данные, то можно потом к ним обращаться через их индексы [0][1]
Danil
Пацаны(и пацанессы если есть) а какие курсы по монге посоветуте ?
Или лучше официальных из закрепа нету ?
Jasur Sharofiddinov
any guidelines/documentation to use elasticsearch in mongodb (pymongo)?
Pavel
КонстантинС
КонстантинС
Доброго времени суток. Я подчистил базу файлов, как уменьшить объем базы, сделать шринкирование?
КонстантинС
как пользоваться compact? 2-й день работаю с нереляционной БД
Danil
Mark
Всех приветствую!
Возник вопрос, как правильно написать условие в запросе с агрегатором?
Допустим у меня есть таблица table1, с полями id, a, b, c_id
Делаю из неё запрос: db.getCollection('table1').find( {'b': {$exists: true, $eq: null}});
Теперь у меня есть вторая таблица table2, с полями id, d, e, f
Хочу их заджойнить:
db.table1([
{
$lookup: {
from: "table2",
localField: "c_id",
foreignField: "id",
as: "col"
},
},
]);
Вопрос заключается в том как во второй запрос добавить условие из первого запроса (тот find)???
Подскажите, пожалуйста, тапками не бросайтесь, первый раз запросы в монго пишу
MaryJ💻
Ребята привет!
Помогите пожалуйста
Почему такая ошибка возникает в Монго, подключаю к кластеру в атласе
MaryJ💻
MaryJ💻
Ilya
по тексту ошибки говорит что надо ip вашей машины где сервис запущен добавить в whitelist, в монго атлас
у них похоже запрещены подключения с произвольного адреса
MaryJ💻
MaryJ💻
А что такое whitelist ?
Yrys_NM
Всем хай
Yrys_NM
Вопрос такой как искать из текста определение слова но не создавая text index возможно ли?
Ilya
Так он добавлен был , то есть IP твоего места положения ?
если вы запускаете на своей рабочей станции - то да, надо добавить ваш внешний IP, whitelist это должна быть настройка в сервисе atlas, тут еще же может быть проблема в том что из РФ сайт монги недоступна - возможно с серверами атласа та же проблема
Yrys_NM
Просто я новичок простите если тупой вопрос
MaryJ💻
если вы запускаете на своей рабочей станции - то да, надо добавить ваш внешний IP, whitelist это должна быть настройка в сервисе atlas, тут еще же может быть проблема в том что из РФ сайт монги недоступна - возможно с серверами атласа та же проблема
Когда создаю shared, выбираю cloud provider AWS, да , я из России, но у меня vpn в браузере и у них определяет recommended region Frankfurt, может быть vpn работает только на браузер , а на сервера уже не ало? Просто зарегаться дало и кластер создать , а connect(а) нет :(((( че и делать , попробовать может локально сделать базу ? Через Mongo DB compass ? Ее же можно скачать , это десктоп приложение, или тоже не проканает ?)
MaryJ💻
А что за whitelist , не могу найти ))
MaryJ💻
Я скачала без проблем. Поставьте vpn в браузер
MaryJ💻
Благодарю , попробую
MaryJ💻
MaryJ💻
Буду пробовать локально установить , прокатит или нет.
Ilya
если знакомы с докером то просто поднимите контейнер в нем
MaryJ💻
Блин как так, столько разработчиков пользуются mongoDB, люди то тут причём и политика. Грустно все это.
MaryJ💻
Это да)
Просто мне интересно было попробовать 2 варианта. Один проект у меня так и сделан.
НО, почему то какая то проблема началась и ошибка точно такая же полезла.
Я уже все проект сделала и обвалилась BD.
Второй проект решила использовать atlas, там немножко другой подход и поработала с .env переменными, не успев приступить к клиентской части , так как полезла эта ошибка коннекта.
Теперь попробую снова локально , незнаю, прокатит или нет. Видимо судьба победить эту ошибку.)))
MaryJ💻
Хм, как вариант)))
MaryJ💻
а какой посоветуете? ниразу не ставила
MaryJ💻
Спасибо, попробую ))
DG
wireguard о вспомнил
DG
абсолютно бесплатно
MaryJ💻
Эх, с локальным тоже уже не АЛО
MaryJ💻
как так, ведь скачено же приложение локально. почему так
MaryJ💻
Вроде все правильно делаю
MaryJ💻
Да, только это и остаётся )))
Pavel
Всех приветствую!
Возник вопрос, как правильно написать условие в запросе с агрегатором?
Допустим у меня есть таблица table1, с полями id, a, b, c_id
Делаю из неё запрос: db.getCollection('table1').find( {'b': {$exists: true, $eq: null}});
Теперь у меня есть вторая таблица table2, с полями id, d, e, f
Хочу их заджойнить:
db.table1([
{
$lookup: {
from: "table2",
localField: "c_id",
foreignField: "id",
as: "col"
},
},
]);
Вопрос заключается в том как во второй запрос добавить условие из первого запроса (тот find)???
Подскажите, пожалуйста, тапками не бросайтесь, первый раз запросы в монго пишу
Добавьте первым $match с условием вашим
MaryJ💻
Получилось ))
MaryJ💻
Через свой IP добавленный )
MaryJ💻
Помимо Frankfrut
MaryJ💻
С атласом
Melonges
Возможно ли в mongo сделать чтобы Id документа auto Inc делал и начинался с 1, а не 12 байтовый хэш?
yopp
Пожалуйста, уважайте других участников. В нашей группе не принято «посылать в гугл». Если вы знаете ответ на вопрос или ссылку с ответом на вопрос, то дайте ссылку, а не оценочное суждение
Alexandrr
Alexandrr
MaryJ💻
Да
MaryJ💻
Потому что сервера у монго видимо не дают без моего IP работать , и им пофиг на другую страну которую они определили через vpn браузера )
MaryJ💻
Я одного понять не могу, почему у меня проект на связке node.js + mongo Atlas + mongo compass работают
А просто локалхост приложения mongo compass+node.js не работает
MaryJ💻
При этом код идентичен, просто в первом варианте проекта , там логин с паролем и юзернейм через env переменные в uri, а во втором варианте просто ссылка на локалхост mongoDB compass ...
Alexandrr