如何使用express.js和mongoclient将数组插入mongodb

时间:2018-03-09 07:40:10

标签: javascript node.js mongodb express

我正在学习平均堆栈,只想尝试使用mongoclient将数据插入myphonebook数据库,我现在不想使用mongoose。

如何将对象数组插入mongodb?让我们说一个以上的地址和手机号码。我不知道如何使用req.body.address或req.body.number

这是我在mongoclient中的代码:

router.post('/', (req,res)=>{

        var newEntry = {
            firstname: req.body.firstname,
            lastname: req.body.lastname,
            address:[
                // what's the right code here?
            ],
            mobile_numbers:[
                // what's the right code here
            ]
        }

        db.collection("data").insert(newEntry);
        res.redirect('/');

    }); 

这里是我想要进入ff的键和值对:

  1. 只是地址字符串
  2. mobile_numbers array:

    {“number”:“1234567”,“订阅者”:“测试”}

  3. 我正在使用基本表格。

    <form action="/" method="POST">
        <input type="text" name="firstname" placeholder="Enter firstname">
        <input type="text" name="lastname" placeholder="Enter lastname">
        <input type="text" name="address" placeholder="Enter address">
        <input type="text" name="mobileno" placeholder="Enter mobile no.">
        <input type="text" name="subscriber" placeholder="Enter mobile no.">
        <input type="submit" value="Submit">
    </form>
    

1 个答案:

答案 0 :(得分:1)

这完全取决于您如何构建HTML表单以及将其发送到节点js API的结构/格式。

如果要在不同的字段中发送它们,可以通过以下方式直接在查询中添加它们:

    mobile_numbers:[
         {number:req.body.num1,subscriber:req.body.sub1},
         {number:req.body.num2,subscriber:req.body.sub2}
    ]

或者如果您要在数组中发送数据,那么您可以使用forEach然后创建所需的结构,然后将其附加到查询中。

或者您可以从UI本身发送所需结构中的数据,然后将对象附加到查询

    mobile_numbers: req.body.mobile_numbers