SvPupok
Anonymous
Народ, а как в монге обстоят дела с хранением и обходом графов? Насколько NoSQL подход годится\ для таких задач?
SvPupok
Igor
Подскажите, есть запрос db.user.find({"age": {$gte: 20, $lte: 25}}), как построить подобный запрос так, что бы выборка была по age между 20-25 и включала в себя еще значения 30.
Igor
что-то типа db.user.find({"age": {$gte: 20, $lte: 25, $and: 30}})
Ilya
db.user.find( { $or: [ {"age": {$gte: 20, $lte: 25}}, {"age": 30}] } )
Ilya
так попробуйте
Igor
Спасибо, попробую
Serhii
Есть такая вот агрегация https://paste.ofcode.org/NYpKPXtzfzPggnCQAhvBW2 и есть проблемка, если какой то колекции нету в бд, бд валится и не запускается. Может кто знает как пофиксить?
Serhii
вот лог https://paste.ofcode.org/32KPUYwwa3BgBMmCDdXvhQg
Sergey
Есть два писателя, оба делают majority write. Первый еще висит в операции insert, но запись в primary де-факто уже случилась. Второй приходит в primary, получает duplicate violation и уходит довольный, считая, что документ уже есть. После этого primary падает, документ идет на rollback, что ОК, т.к. первый читатель никогда не получал ack на вставку.
А вот второй, несмотря на majority, получил отлуп на не durable данных.
В этих рассуждениях есть ошибка? Знает ли кто-нибудь причину, почему так не произойдет?
Anonymous
UnhandledPromiseRejectionWarning: CastError: Cast to ObjectId failed for value "5bd9657b1352e31d04360bb" at path "_id" for model "storage"
Anonymous
async getById(Id){
return await Storage.findById(Id)
}
Anonymous
что делать?
倫太郎
倫太郎
+ если монгуз то надо после запроса .exec() делать
Igor
Serhii
yopp
Есть два писателя, оба делают majority write. Первый еще висит в операции insert, но запись в primary де-факто уже случилась. Второй приходит в primary, получает duplicate violation и уходит довольный, считая, что документ уже есть. После этого primary падает, документ идет на rollback, что ОК, т.к. первый читатель никогда не получал ack на вставку.
А вот второй, несмотря на majority, получил отлуп на не durable данных.
В этих рассуждениях есть ошибка? Знает ли кто-нибудь причину, почему так не произойдет?
Хороший вопрос.
Второй клиент не уйдёт с отлупом, пока первый не получит ack. Потому что majority потребует подтверждения со большинства нод, а его не будет, потому что изменение ещё не реплицировалось.
Sergey
yopp
Для времени кластера, да.
yopp
Интересный вопрос что будет в монге 3.4 до появления casual consistency.
yopp
Наверное так как описано. Второй получит отлуп на основании данных праймари
倫太郎
Ну вообще обязательное
Serhii
ну вообще нет
Serhii
на авш выбок, exec, callback или then
Serhii
倫太郎
Serhii
Тут
там написано then, а не промисы
倫太郎
Serhii
А что такое then?
вот вы скинули ссылку, хотя бы взяли прочитали что там написано, а не позорились
倫太郎
Позоооор
Serhii
Почитали что такое then в контексте mongoose?
倫太郎
Ога
Serhii
так, на всякий случай https://monosnap.com/file/cM5BR5VpTTUoaEjKODBJL9NQN9HkSN
yopp
Позоооор
Попрошу без этого. Если есть какие-то конструктивные комментарии, пожалуйста. Если нет, попрошу оставить оценки при себе.
倫太郎
倫太郎
Или это доступно только джедаям?
Serhii
倫太郎
倫太郎
Все равно везде пишу .exec()
Serhii
самое смешное, что хоть они и пишут что оно не работает с async/await но оно работает
倫太郎
Serhii
если exec юзать
倫太郎
Неа
倫太郎
Перечитай
Serhii
да хз, чето я запутался) в примере только так есть await MyModel.findOne({}).exec()
Serhii
сорян, чето упустил это
Maksym
Привет народ. Кто использует C# MongoDriver, как вы инкапсулируете работу с монго? Делаете какой-то generic repository или напрямую юзаете, есть какой-то бест практис?
Yurii
Viktor
Viktor
в di зареган как опенгенерик
Maksym
генерик репо написан с ограничением на параметр типа
вот я тоже так сделал, а теперь вот смотрю и как-то по уродливому оно. И например если нужно сделать aggregation с двух коллекций, то репозитория не хватает. Плюс c сама IMongoCollection можно работать как с IQueryable и чета я не вижу вообще смысла в этом репозитории паттерне
AstraSerg
Viktor
Serhii
Может еще кто то с этим все таки поможет?
Есть такая вот агрегация https://paste.ofcode.org/NYpKPXtzfzPggnCQAhvBW2 и есть проблемка, если какой то колекции нету в бд, бд валится и не запускается.
Тестовым путем замечено что все это валит оператор $project в lookup pipeline.
Может кто знает как пофиксить? вот лог https://paste.ofcode.org/32KPUYwwa3BgBMmCDdXvhQg
Nick
Serhii
yopp
yopp
какая версия монги?
Serhii
node - v10.5.0
mongodb - v3.1.8
mongoose - v5.3.8
mongo-server - v4.0.1
Viktor
yopp
yopp
mongod --version
Serhii
mongodb нодовский драйвер, mongo-server то что shell выводит при старте
yopp
попробуйте сервер до 4.0.3 обновить
yopp
если проблема останется, то сделайте репозиторий на гитхабе, в который положите минимальное приложение которое роняет монгу и заведите тикет на https://jira.mongodb.org
Serhii
чето мне кажется это больше баг mongodb драйвера или mongoose, так как с робомонго запрос проходит без проблем
Yurii
Serhii
Да вродь ни чего критичного
https://paste.ofcode.org/qQqTdeQVeCsR2jhpsSz4yK