【问题标题】:How to update subdocument with findOneAndUpdate?如何使用 findOneAndUpdate 更新子文档?
【发布时间】:2014-02-26 15:06:19
【问题描述】:

藏书里有一个文件:

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

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

结果:

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

我希望对 mongoose 的单个查询做同样的事情。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    以下对我有用:

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

    【讨论】:

    • 不幸的是,我似乎无法让上述(优雅的)解决方案发挥作用。 data._id 和 data.$.name 的语法错误。这应该适用于最新版本的 Mongoose 吗?
    • 好的,找出为什么它对我不起作用...在 data._id 和 data.$.name 周围添加引号解决了这个问题。像魅力一样工作!
    猜你喜欢
    • 2017-08-13
    • 2018-10-22
    • 1970-01-01
    • 2022-01-22
    • 2016-10-15
    • 1970-01-01
    • 2019-07-20
    • 2019-03-06
    • 2022-08-02
    相关资源
    最近更新 更多