Oleksii
Active: active (running)
Oleksii
а
Oleksii
понял теперь
Oleksii
Andrew
нез
Sardor
Ребят, что за ошибка MongoError: Topology was destroyed? Впервые сталикваюсь, хз, что с ней делать
yopp
Sardor
yopp
rs.status()
Sardor
rs.status()
Спасибо! Сделал. А на что конкретно там надо смотреть? Ошибок, вроде, нет, на "ок" стоит однерка
https://gist.github.com/Khuzha/9abba04cd9a47deab77091afee6b8b9d
Sardor
кстати, тут еще начало MongoError: pool destroyed выходить:) Оно из той же серии?
yopp
Это в шелле?
Sardor
Это в шелле?
Как я пониммаю, да. Та ссылка с Атласа же шелл запускает? И тут написано, что шелл. Раньше никогда не приходилось работать с ним
Sardor
Это в шелле?
а, если Вы про ошибку MongoError: pool destroyed — нет, она в исполняемом файле, подключающемся к Монге
yopp
Вероятно у вас какие-то сетевые проблемы
yopp
Если из шела нормально получатся подключится и вы видите и статус ноды к которй подключились и можете выполнять команды требующие серверного cluster view, то вероятнее всего проблема где-то в вашем приложении
yopp
Или в сети. Но если pool destroyed и topology destroyed то больше похоже на то что инстанс клиента к монге по какой-то причине теряет соединение
yopp
А команды все ещё пытаются выполняться
yopp
Sardor
А зачем вы закрываете соединение?
У меня много файлов и я решил, что лучше в каждом из них открывать соединение и закрывать после выполнения, чем тащить db с одного из них.
Ну и в кое-каких моментах было бы просто кастыльно тащить его
А закрываю, потому что один из файлов запускается для каждого юзера и атлас ругается, что нарушаю лимит числа соединений
Sardor
Или тут можно что-нибудь другое придумать?
yopp
Тогда вероятнее всего ваши проблемы связаны с тем, что вы закрываете соединение, а в очереди запросов ещё что-то есть.
Закрывать соединение не нужно. Подключайтесь к монге в момент запуска приложения и шарьте клиента на весь ваш код и держите его открытым всегда. Пусть драйвер за вас закроет соединение когда приложение будет завершаться.
Sardor
Алексей
Ребят привет
Алексей
делаю выборку в питоне подскажите плиз
Алексей
'$or': [
{
'$and': [ {'updated_at': {'$gte': new ISODate("2019-05-04")}}, {'updated_at': {'$lt': utcnow() - timedelta(days=1)}}]
},
{
'updated_at': None
}
]
},
Алексей
ргуается на вот строку где ans ...
Алексей
вот скринчик куска где ругается
Алексей
49 строчка
Алексей
очень нужна помощь
Nick
Ilya
вот скринчик куска где ругается
если у вас в updated_at хранится дата в формате Date то наверное правильнее будет использовать не new ISODate("2019-05-04") а питоновское datetime(year=2019, month=5, day=4)
Алексей
Ilya
ну судя по запросу вы все таки там хрантие не строки а именно дату.
все зависит от того как записанно поле в монгу
Алексей
Как Date
Ilya
ну значит и работать надо с ней с типом datetime
Ilya
ну или Date из пакета datetime я уж точно не помню
Ilya
с полем updated_at вы же с питоновскими типами работаете а тут почему то по другому решили
Ilya
ой
Ilya
я имел ввиду со второй частью запроса
Алексей
'$and': [{'updated_at': {'$gte': date(2019, 05, 04)}}, {'updated_at': {'$lt': utcnow() - timedelta(days=1)}}] получается так
Ilya
да
Алексей
спасибо, что-то сглупил
Алексей
теперь другая проблема
Алексей
сделал как выше, стал ругаться на invalid token в это же строке
Алексей
скорее всего надо без ‘0’
Nick
Алексей
мне надо что бы выбирал с 04 05 месяца по сутки спустя от текущей даты
Nick
я про общее решение. если будете использовать его для произвольных интервалов то будут проблемы
Алексей
Вот сейчас есть проблема в том что очень долго он делает выборку, хоть и есть индексы
Алексей
т.е как я понимаю он идет по всем данным в монге и это очень долго
Алексей
и следовательно бд постоянно растет
Дамир
Всех приветствую!
Выполняют следующий запрос:
db.getCollection('user').find(
{
"phones.phone": {
$in: ["77771112233", "77772221133", "77774442255"]
}
}
)
Выводит у кого установлен один из номеров. Вопрос, как можно узнать по какому из номеров был найден?
Алексей
в find добавить возвращаемы поля
Дамир
Весь документ возвращает при запросе, или Вы про другое?
yopp
Дамир
Дамир
Vasiliy
Доброго дня!
Кто знает как в mongoose получить _id созданного через create() документа? По умолчанию возвращается _id: null.
Лучшее что я пока что придумал - заранее создавать через mongoose.Types.ObjectId() новый _id, добавлять его в объект и уже потом вызывать create().
Виктор
В schema _id указывал?
Vasiliy
Виктор
Убери, должно помочь
Vasiliy
Виктор
Не помогло
Интересно, надо код смотреть. У меня он автоматом генерит _id
Vasiliy
Vasiliy
await model.create(args) -> {_id: null, ...}
Виктор
Почему save не используешь?
Виктор
new model(args), у полученного объекта await obj.save()
Vasiliy
Oleksii
Здравствуйте
впервые пользуюсь монго и не могу разобраться в доке, что и как
Может кто-то объяснить в лс как нужно в коде подключить бд и делать запросы?
Alexander
В коде - какой стек?
Nick