如何在Mongoose中将会话传递给'Model.create()'?

5
我该如何将一个会话变量传递给mongoose中的Model.Create()方法?
我尝试了一些代码,但是出现了以下错误:"在Mongoose中,要想将一个会话传递给Model.create(),你必须传递一个数组"。
    const mongoose = require("mongoose");
    const Company = require("../models/company");
    const Address = require("../models/userAddress");

    exports.add_company = async (req ,res,next)=>{

    const  session = await mongoose.startSession();
    await session.startTransaction();
    const createdDocs = [];


    try{
    const address = new Address({
    _id: new mongoose.Types.ObjectId(),
    addressName: req.body.addressName,
    address1: req.body.address1,
    address2: req.body.address2,
    city: req.body.city,

    pincode: req.body.pincode

    });



    await Address.create(session,address);


    createdDocs.push(address);

    const company = new Company({
             _id: new mongoose.Types.ObjectId(),
             companyName: req.body.companyname,
             companyType: req.body.companytype,
             companyDesc: req.body.companydesc,
             companyWebsite: req.body.companywebsite,
             companyLogo: req.file ? req.file.path : null,
             addressId:createdDocs[0].addressId

         });
     await  Company.create(session,company);


         createdDocs.push(company);


         await session.commitTransaction();
         console.log(createdDocs);  





         res.status(200).json({
          message:"company registered registerd",
          companyName:createdDocs[1].companyName,
          address:createdDocs[0].addressName,

        });


     }
     catch(err){

     await session.abortTransaction();
     res.json({ status:false, message:err.message});



     }
     finally {
     session.endSession();
     }


     };
1个回答

6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接