Текущий статус документа MongoDB:
// Team document
{
"_id" : ObjectId("5cc6d4c8c3faa84f28e5fe1d"),
"teamMembers" : [
{
"player" : ObjectId("5ba24b8594a05f3788980a11"),
"_id" : ObjectId("5cc6d4c8c3faa84f28e5fe1e")
}
],
"createdDateTime" : ISODate("2019-04-29T10:41:12.836Z"),
"__v" : 0
}
У меня есть следующие данные запроса, которые необходимо добавить в свойство teamMembers вышеупомянутого документа:
{
"teamId": "5cc6d4c8c3faa84f28e5fe1d",
"playerList": [
{
"player": "5ba24b8594a05f3788980a11"
},
{
"player": "5ba38151e1baf00264786891"
},
{
"player": "5ba38151e1baf0026478688c"
}
]
}
Я попробовал следующий код moongoose:
Team.update({ '_id': req.body.teamId }, {
$addToSet: {
'teamMembers': { $each: req.body.playerList }
}
}, function (err) {
if (err) {
/* error response */
}
else {
/* success response */
}
});
Проблема: Если игрок уже существует в массиве, он не должен быть добавлен в массив toteamMembers, но в моем случае это добавление дублирующих записей игрока. Таким образом, в вышеприведенном случае player:5ba24b8594a05f3788980a11
уже существует в документе MongoDB, поэтому его не нужно добавлять, но оставшиеся два игрока должны быть добавлены в teamMembers
массив