如何使用node.js在mongodb中插入文档数组?

时间:2016-01-25 17:21:43

标签: arrays node.js mongodb

我想使用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);
       });
    }});

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

请仔细阅读我的帖子并向我推荐一些解决方案。

1 个答案:

答案 0 :(得分:2)

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

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);
});