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

ans*_*992 2 arrays mongodb node.js

我想使用 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"
}]
Run Code Online (Sandbox Code Playgroud)

示例代码

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);
       });
    }});
Run Code Online (Sandbox Code Playgroud)

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

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

Jon*_*ler 5

在您的示例代码中,您只添加了 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);
});
Run Code Online (Sandbox Code Playgroud)