如何使用findOneAndUpdate更新子文档?

时间:2014-02-03 07:47:52

标签: node.js mongodb mongoose

收藏书中有一个文件:

{ _id : someMongooseGeneratedId,
  name : 'myBook',
  data : [{_id : 'page', name : 'one'},{ _id : 'chapter', name : 'Chapter One' }]
 }

我想更新图书名称为'myBook'的图书:  将章节名称设置为“第1章”到_id为“章节”的数据

结果为:

{ _id : someMongooseGeneratedId,
  name : 'myBook',
  data : [{_id : 'page', name : 'one'},{ _id : 'chapter', name : 'Chapter 1' }]
 }

我希望使用mongoose进行单一查询。

1 个答案:

答案 0 :(得分:13)

以下适用于我:

Model.findOneAndUpdate({ name : 'myBook', "data._id" : 'chapter' }, { "data.$.name" : 'Chapter 1' });