我有一个这样的 struct :
{
_id: new ObjectId("634aa49f98e3a05346dd2327"),
filmName: 'Film number 1',
episodes: [
{
episodeName: 'Testing 1',
slugEpisode: 'testing-1',
_id: new ObjectId("6351395c17f08335f1dabfc9")
},
{
episodeName: 'Testing 2',
slugEpisode: 'testing-2',
_id: new ObjectId("6351399d9a2533b9be1cbab0")
},
],
},
{
_id: new ObjectId("634aa4cc98e3a05346dd232a"),
filmName: 'Film number 2',
episodes: [
{
episodeName: 'Something 1',
slugEpisode: 'something-1',
_id: new ObjectId("6367cce66d6b85442f850b3a")
},
{
episodeName: 'Something 2',
slugEpisode: 'something-2',
_id: new ObjectId("6367cd0e6d6b85442f850b3e")
},
],
}
我收到了3个字段:
-
_id
:胶片ID -
episodeId
:剧集id -
episodeName
:我希望更新的内容
我试图找到一个特定的Film ID
来获得一部特定的电影,从那时起,我就通过Episode ID
来找到episodes
数组中的确切剧集.然后,更新那一集的第episodeName
集.
以下是我在NodeJS中的代码:
editEpisode: async (req, res) => {
const { _id } = req.params
const { episodeId, episodeName } = req.body
try {
const specificResult = await Films.findOneAndUpdate(
{ _id, 'episodes._id': episodeId },
{ episodeName }
)
console.log(specificResult)
res.json({ msg: "Success update episode name" })
} catch (err) {
return res.status(500).json({ msg: err.message })
}
},
但是console.log
显示给我的是一个完整的文档,当我签入MongoDB时,根本没有更新,我使用findOneAndUpdate
的方式是不是不正确?
我正在读这份文件:MongooseJS - Find One and Update,他们说这份文件给了我filter
和update
的 Select .