Javascript 如何在Mongoose中创建多个对象数组?

Javascript 如何在Mongoose中创建多个对象数组?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,有谁能帮我在每次创建时添加多个“插件”吗? 有了这段代码,我只能添加一个插件。。 (在《邮递员》中测试)但有人能建议我如何添加多个插件吗 模型 }) 控制器: const addItem = await Item.create({ name:req.body.name, price: idOfGroup, addons:[{addonsName:req.body.addonsName, price: req.body.price}] }); res.status(200)

有谁能帮我在每次创建时添加多个“插件”吗? 有了这段代码,我只能添加一个插件。。 (在《邮递员》中测试)但有人能建议我如何添加多个插件吗

模型

})

控制器:

const addItem = await Item.create({
    name:req.body.name,
    price: idOfGroup,
    addons:[{addonsName:req.body.addonsName, price: req.body.price}]
});
res.status(200).json({status:'Success',addItem})
我在做什么

我在《邮递员》中写道

{
"name":"Test1",
 "addons" : [
    {
        "addonsName":"Test",
        "price":"100"
    },
    {
        "addonsName":"TestTest",
        "price":"200"
    }
 ]
}


但是这是使用.Create()的错误方法吗?

根据您的邮递员示例,您正在将addons数组传递到键
addons
下。所以只需将其作为插件传递:

const addItem = await Item.create({
  name: req.body.name,
  price: idOfGroup,
  addons: req.body.addons,
});
res.status(200).json({ status: "Success", addItem });
您还可以使用来摆脱
req.body.
重复:

const { name, addons } = req.body;

const addItem = await Item.create({
  name,
  price: idOfGroup,
  addons,
});
res.status(200).json({ status: "Success", addItem });

根据邮递员示例,您正在传递键
addons
下的addons数组。所以只需将其作为插件传递:

const addItem = await Item.create({
  name: req.body.name,
  price: idOfGroup,
  addons: req.body.addons,
});
res.status(200).json({ status: "Success", addItem });
您还可以使用来摆脱
req.body.
重复:

const { name, addons } = req.body;

const addItem = await Item.create({
  name,
  price: idOfGroup,
  addons,
});
res.status(200).json({ status: "Success", addItem });

你可以制作如下所示的数组

const itemSchema = new mongoose.Schema({

name: {
    type:String
},
price:{
    type:Boolean
},
addons:[]

)}
在控制器中:

const addItem = await Item.create({
    name:req.body.name,
    price: idOfGroup,
    addons:req.body.addons
});
res.status(200).json({status:'Success',addItem})
邮递员请求有效负载:

{
"name":"Test1",
 "addons" : [
    {
        "addonsName":"Test",
        "price":"100"
    },
    {
        "addonsName":"TestTest",
        "price":"200"
    }
 ]
}

你可以制作如下所示的数组

const itemSchema = new mongoose.Schema({

name: {
    type:String
},
price:{
    type:Boolean
},
addons:[]

)}
在控制器中:

const addItem = await Item.create({
    name:req.body.name,
    price: idOfGroup,
    addons:req.body.addons
});
res.status(200).json({status:'Success',addItem})
邮递员请求有效负载:

{
"name":"Test1",
 "addons" : [
    {
        "addonsName":"Test",
        "price":"100"
    },
    {
        "addonsName":"TestTest",
        "price":"200"
    }
 ]
}

在创建item对象的
加载项周围添加
[]
。@cbr我修复了它:D但仍然无法发布多个记录您的问题是如何在HTTP请求中传递多个加载项,还是如何创建具有多个加载项的项?如果是前者,您是以JSON、urlencoded还是formdata的形式发送数据?只需将
req.body.stand
作为
addons
Try
Item.create({name:req.body.name,price:idOfGroup,addons:req.body.stand})
既然你在邮递员身体中的
键下传递
加载项
数组。在你创建物品对象的
加载项
周围添加
[]
?@cbr我修复了它:D但仍然不能发布多个记录你的问题是如何在HTTP请求中传递多个加载项,或者如何创建具有多个加载项的项目?如果是前者,您是以JSON、URLCoded还是formdata的形式发送数据?只需将
req.body.stand
作为
addons
Try
Item.创建({name:req.body.name,price:idOfGroup,addons:req.body.stand})
,因为您是在postman body中传递
stand
键下的
addons
数组。