我有一群fixtures
属于'对竞争对手而言,看起来像这样:
{
"_id": {
"$oid": "59dbdf6dbe628df3a80419bc"
},
"timeOfEntrance": "1507581805813",
"timeOfFinish": null,
"competitor": {
"$oid": "59db5a3f3d6119e69911a61a"
},
"__v": 0
}
我的目标是仅通过发送带有竞争对手ID的timeOfFinish
请求作为身份网址和时间戳中的参数来更新文档PUT
。但是,我很难撰写更新查询。
以下是我目前的情况,从未找到合适的匹配,令我惊讶的是总是更新错误的文档。
fixtureController.put = (req, res) => {
const competitorId = req.params.id;
const timeOfFinish = req.body.timeOfFinish;
Fixture.findOne({'competitor.$oid': competitorId}, (err, fixture) => {
fixture.set({ timeOfFinish });
fixture.save()
.then(updatedFixture => {
return res.status(200).json({
success: true,
fixture: updatedFixture
})
})
.catch(err => {
return res.status(500).json({
message: err
});
});
});
};
MongoDB领域的初学者,非常感谢您的评论和解决方案。
答案 0 :(得分:0)
原来不需要在match参数中指定确切的字段。 Mongoose会自动匹配id字段。
bundle exec rake run_parallel