我是Nodejs的新手,我被分配了使用node和mongodb将多个文档插入数据库中的集合的任务。我正在创建用户的表演,然后得到该用户的所有朋友。现在,对于所有朋友,我必须在数据库中生成一个通知对象。
这是我生成通知的功能-
function generateNotification(performanceId, allFriends) {
return new Promise((resolve, reject) => {
var friendUserIds = []
var performance = []
var doc = []
doc = allFriends.Friends.forEach(function (friend) {
friendUserIds.push(friend.friendUserId)
performance.push(performanceId)
})
notificationObj.insertMany(doc, (err, notifgenerated) => {
if (err) {
reject({ "Success": "0", "Message": "Some error occured" })
} else {
var message = { "Success": "1", "Message": "Notification(s) generated", "Notif": notifgenerated }
resolve(message)
}
})
})
}
在这里,我正在获取所有朋友用户ID,然后将其存储在数组中。当前仅插入一个对象,该对象也没有friendId或performanceId。 现在如何为每个朋友ID创建多个对象?
答案 0 :(得分:1)
我的猜测是您运行的循环错误: 您必须按如下方式更改循环逻辑:
var doc = []
allFriends.Friends.forEach(function (friend) {
var obj = {};
obj.friendId = friend.friendUserId
obj. performanceId = performanceId;
doc.push(obj)
})
notificationObj.insertMany(doc, (err, notifgenerated) => {
if (err) {
reject({ "Success": "0", "Message": "Some error occured" })
} else {
var message = { "Success": "1", "Message": "Notification(s) generated", "Notif": notifgenerated }
resolve(message)
}
})