获取 { "message" : "Invalid update pipeline operator: " _id\ " " } 错误



我正试图根据id更新玩家表中的两行。我正试图使用updateMany方法,在id的数组中可以找到id,但我得到了{"message":"Invalid update pipeline operator: "_id""}错误。我检查了数组以确保它是有效的id。这是我的代码

const winningTeam = asyncHandler(async (req, res) => {
req.body.forEach((element) => {
element.wins += 1;
element.lastPlayed = Date.now();
element.percentage = (element.wins / (element.wins + element.wins)) * 1000;
});
let usersId = [];
usersId.push(req.body[0]._id);
if (req.body.length === 2) {
usersId.push(req.body[1]._id);
} 
const player = await Player.updateMany({ _id: { $in: usersId } }, req.body);
if (player) {
res.status(200).json(player);
} else {
res.status(400);
throw new Error("Invalid Data");
}
});

您应该使用$set属性作为更新参数。我不确定你的req.body的结构,但它应该是这样的:

Player.updateMany({ _id: { $in: usersId } }, {$set: req.body});

而不是这个:

Player.updateMany({ _id: { $in: usersId } }, req.body);

查看文档以进行更新许多

最新更新