Size: a a a

2020 June 02

y

yopp in MongoDB Russian
источник

AZ

Alexander Zelenyak in MongoDB Russian
u = await User(name='Alexandro').save(db, do_insert=True)

Какая же грязь... Ну почему никто не делает нормальных ODM?

@pandamy619, сколько-то времени назад я написал себе ODM. Работает в продакшене, проблем не создаёт. В асинхронщину умеет, только доку не написал. Если будут вопросы: пиши в личку, подскажу.
https://github.com/zzzsochi/yadm
источник

k

kk in MongoDB Russian
Alexander Zelenyak
u = await User(name='Alexandro').save(db, do_insert=True)

Какая же грязь... Ну почему никто не делает нормальных ODM?

@pandamy619, сколько-то времени назад я написал себе ODM. Работает в продакшене, проблем не создаёт. В асинхронщину умеет, только доку не написал. Если будут вопросы: пиши в личку, подскажу.
https://github.com/zzzsochi/yadm
спс тоже посмотрю
источник

V

Vlad in MongoDB Russian
Alexander Zelenyak
u = await User(name='Alexandro').save(db, do_insert=True)

Какая же грязь... Ну почему никто не делает нормальных ODM?

@pandamy619, сколько-то времени назад я написал себе ODM. Работает в продакшене, проблем не создаёт. В асинхронщину умеет, только доку не написал. Если будут вопросы: пиши в личку, подскажу.
https://github.com/zzzsochi/yadm
спасибо)
источник

D

Denis 災 nobody in MongoDB Russian
Daniil Lebedinsky
это там все есть вообще)
в нашей внутренней. Я вот с монгой толком не работал, для меня это всё новая инфа
источник

AT

Arams Tomojans in MongoDB Russian
день добрый, тяну обьект по айди из нужной таблицы.
{
               $lookup: {
                   from: 'books',
                   localField: 'bookId',
                   foreignField: '_id',
                   as: 'bookName'
               }
           }
а как вытянуть только одно поле а не весь обьект? нужно по айди вытянуть поле name
источник

y

yopp in MongoDB Russian
Arams Tomojans
день добрый, тяну обьект по айди из нужной таблицы.
{
               $lookup: {
                   from: 'books',
                   localField: 'bookId',
                   foreignField: '_id',
                   as: 'bookName'
               }
           }
а как вытянуть только одно поле а не весь обьект? нужно по айди вытянуть поле name
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#lookup-join-pipeline

и там два шага: $match с условиями для подзапроса и $project с name: 1
источник

AT

Arams Tomojans in MongoDB Russian
yopp
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#lookup-join-pipeline

и там два шага: $match с условиями для подзапроса и $project с name: 1
спасибо. вот так вышло
           {
               $lookup: {
                   from: 'books',
                   localField: 'bookId',
                   foreignField: '_id',
                   as: 'bookName2'
               },
           },
           {$unwind:'$bookName2'},
           {$project:{
                   bookName:'$bookName2.name',
                   returnDate: 1,
                   act: 1
               }}
источник
2020 June 03

AM

Alex Mirugwe in MongoDB Russian
Hey guys, I need some help.I have a NoSQL-MongoDB assignment I am working of identifying 5 use cases of reddit.com. Can one help me with some basics because I am really stuck!!!
источник

AT

Arams Tomojans in MongoDB Russian
народ подскажите пожалуйста как в данный запрос впихнуть where?
BookHistory.aggregate([

               {
                   $lookup: {
                       from: 'books',
                       localField: 'bookId',
                       foreignField: '_id',
                       as: 'bookName2'
                   },
               },
               {$unwind:'$bookName2'},
               {
                   $project:{
                       bookName:'$bookName2.name',
                       returnDate: 1,
                       act: 1,
                       actDate: 1,
                       readerId: 1
                   }
               }
       ])
слияние таблиц проходит ок. но нужно вытягивать только те записи в которых readerId совпадает с айдишником который приходит на сервер
источник

AT

Arams Tomojans in MongoDB Russian
readerId в первой таблице, до lookup
источник

NS

Nikolay 🤷🏼‍♀️ Simoti... in MongoDB Russian
Arams Tomojans
народ подскажите пожалуйста как в данный запрос впихнуть where?
BookHistory.aggregate([

               {
                   $lookup: {
                       from: 'books',
                       localField: 'bookId',
                       foreignField: '_id',
                       as: 'bookName2'
                   },
               },
               {$unwind:'$bookName2'},
               {
                   $project:{
                       bookName:'$bookName2.name',
                       returnDate: 1,
                       act: 1,
                       actDate: 1,
                       readerId: 1
                   }
               }
       ])
слияние таблиц проходит ок. но нужно вытягивать только те записи в которых readerId совпадает с айдишником который приходит на сервер
$match первым элементом пайплайна?
источник

AT

Arams Tomojans in MongoDB Russian
Nikolay 🤷🏼‍♀️ Simotiuk
$match первым элементом пайплайна?
const bookHistory = await BookHistory.aggregate([
           { $match : { readerId : "5ec3f547209caf11b9c24f7b" } },
               {
                   $lookup: {
                       from: 'books',
                       localField: 'bookId',
                       foreignField: '_id',
                       as: 'bookName2'
                   },
               },
               {$unwind:'$bookName2'},
               {
                   $project:{
                       bookName:'$bookName2.name',
                       returnDate: 1,
                       act: 1,
                       actDate: 1,
                       readerId: 1
                   }
               }

       ])
источник

AT

Arams Tomojans in MongoDB Russian
вот так возращает пустой массив
источник

VL

Vova Lantsov in MongoDB Russian
источник

NS

Nikolay 🤷🏼‍♀️ Simoti... in MongoDB Russian
Arams Tomojans
const bookHistory = await BookHistory.aggregate([
           { $match : { readerId : "5ec3f547209caf11b9c24f7b" } },
               {
                   $lookup: {
                       from: 'books',
                       localField: 'bookId',
                       foreignField: '_id',
                       as: 'bookName2'
                   },
               },
               {$unwind:'$bookName2'},
               {
                   $project:{
                       bookName:'$bookName2.name',
                       returnDate: 1,
                       act: 1,
                       actDate: 1,
                       readerId: 1
                   }
               }

       ])
там в коллекции наверное ведь ObjectId, а не стринга.
Нужно конвертнуть в ObjectId этот renderId
источник

VL

Vova Lantsov in MongoDB Russian
Arams Tomojans
const bookHistory = await BookHistory.aggregate([
           { $match : { readerId : "5ec3f547209caf11b9c24f7b" } },
               {
                   $lookup: {
                       from: 'books',
                       localField: 'bookId',
                       foreignField: '_id',
                       as: 'bookName2'
                   },
               },
               {$unwind:'$bookName2'},
               {
                   $project:{
                       bookName:'$bookName2.name',
                       returnDate: 1,
                       act: 1,
                       actDate: 1,
                       readerId: 1
                   }
               }

       ])
Этот сайт умеет обьяснять запросы агрегации, и показывать результат выполнения для каждого stage
источник

AT

Arams Tomojans in MongoDB Russian
Nikolay 🤷🏼‍♀️ Simotiuk
там в коллекции наверное ведь ObjectId, а не стринга.
Нужно конвертнуть в ObjectId этот renderId
а вот это хорошая идея
источник

AT

Arams Tomojans in MongoDB Russian
хотя встает вопрос почему конструкция .find({readerId: req.params.id}) работает. там же тоже стринг
источник

DL

Daniil Lebedinsky in MongoDB Russian
Arams Tomojans
хотя встает вопрос почему конструкция .find({readerId: req.params.id}) работает. там же тоже стринг
вы mongoose используете?
источник