將新元素正確推送到mongodb數組,我需要將2個元素添加到屬於集合'users'的數組'roles'中。 我正在使用本地mongodb驅動程序。 這裏是我的代碼:如何在我的節點應用中使用node.js
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
} else {
console.log('Connection established to', url);
var collection = db.collection('users');
var roles = req.body.requestedRoles.split(',');
roles.forEach(function(role){
collection.update(
{
email: req.body.userEmail
},
{
$push: { roles: role }
},
{upsert: true},
function(err, result) {
if (err) {
console.log('err: ' + err);
}
else {
console.log('update result: ' + result);
}
}
);
});
collection.update(
{
email: req.body.userEmail
},
{
$push: { roles: req.body.requestedRoles }
},
{upsert: true},
function(err, result) {
if (err) {
console.log('err: ' + err);
}
else {
console.log('update result: ' + result);
}
}
);
}
});
req.body.requestedRoles包含「角色1,角色2」
運行此代碼時,我結束了以下的(而不是2)3角色:'role-1','role-2','role-1,role-2'
顯然,我不需要第三個條目。 我可以改變什麼來避免這種情況?