【问题标题】:How to insert array of document in mongodb using node.js?如何使用 node.js 在 mongodb 中插入文档数组?
【发布时间】:2016-05-02 02:35:18
【问题描述】:

我想使用 node.js 将文档数组插入 mongodb,但在插入时只插入第一个数据。

[{
  "userid": "5664",
  "name": "Zero 2679",
  "number": "1234562679",
  "status": "contact",
  "currentUserid": "Abcd"
 }, 
 {
  "userid": "5665",
  "name": "Zero 3649",
  "number": "1234563649",
  "status": "contact",
  "currentUserid": "Xyz"
}]

示例代码

collection.insert([{"userid": userid,"name": name,"number": number,"status": status,"currentUserid": currentUserid}], function(err, docs) {
    if (err) {
        res.json({error : "database error"});
    }else {
       collection.find({currentUserid:currentUserid}).toArray(function(err, users) {
          res.send(users);
       });
    }});

但它仍然只插入第一个值,请告诉我如何插入所有这些文档。

请仔细阅读我的帖子并建议我一些解决方案。

【问题讨论】:

    标签: arrays node.js mongodb


    【解决方案1】:

    在您的示例代码中,您只添加了 1 个用户。

    db.collection('myCollection').insert([doc1, doc2]); 使用批量写入插入两个文档。

    在此处查看文档:https://docs.mongodb.org/manual/reference/method/db.collection.insert/

    从您的示例中,您可以:

    var data = [{
      "userid": "5664",
      "name": "Zero 2679",
      "number": "1234562679",
      "status": "contact",
      "currentUserid": "Abcd"
     }, 
     {
      "userid": "5665",
      "name": "Zero 3649",
      "number": "1234563649",
      "status": "contact",
      "currentUserid": "Xyz"
    }];
    db.collection('myCollection').insert(data)
    .then(function() {
      return db.collection('myCollection').find({number: {$in: ["1234563649", "1234562679"]}});
    })
    .then(function(res) {
      console.log(res);
    });
    

    【讨论】:

    • 嘿,谢谢你能更新我的示例代码并告诉我怎么做,因为我也尝试过批量操作,但它只插入第一个值
    • 原版驱动中还有insertMany方法。
    • 嘿,谢谢它的工作,你能告诉我一件事如何使它动态,因为我很喜欢 node.js 和 mongodb。
    • '如何让它变得动态':你说的是 db.collection('').find 吗?
    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2015-12-19
    相关资源
    最近更新 更多