我想使用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);
});
}});
但它仍然只插入第一个值,请你告诉我如何插入所有这些文件。
请仔细阅读我的帖子并向我推荐一些解决方案。
答案 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);
});