Как можно использовать startSession () с map () в mon goose? - PullRequest
0 голосов
/ 14 марта 2020

Я получил 2 модели Продукты, Изображения Продукты: {image:[images:{type:mongoose.Types.ObjectId,ref:'Colors'}]} // this save _id из Изображения модели

Изображения: {imageUrl:{type:String}} // store image

Я пробовал этот код, но он не работает с Транзакцией ...

    let image_temp=[];
const sess = await mongoose.startSession();
        sess.startTransaction();
        const createdProduct = new Products({  
            name:req.body.name; 
        })
        await req.body.images.map(async img => {      // images is an array URL
            const createdImage = new Images({
                imageUrl: img
            })
             image_temp.push( await createdImage.save({session:sess} ));
        })

        data = await createdProduct.save({session:sess});
        await image_temp.map(img => {
            data.images.push(img)
        })
        await data.save({session:sess})
        await sess.commitTransaction();

Если я удалю сессию, этот код будет работать. Но я думаю, что сессия будет лучше, она может отменить весь код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...