mongoose 更新操作未报错但不能更新?

问题描述

想更新子文档数组中的一个字段,按照官方文档写了但是不能更新,请各位帮忙看看,谢谢!

相关代码

更新方法:

modle.updateOne({
    "fruit.price":12,
    _id:1
},{
    $set:{
        "fruit.$.sum":30
    }
})

model 实例:

{
     _id:1,
     fruit:[{
         price:12,
         sum:23,
         date:'2018.7.6',
         add:Array
     },
     {
         price:5,
         sum:40,
         date:'2018.7.6',
         add:Array
     }]
     
 }

返回结果:

{ Ok:1, nModified:0, n:0}

明明找到了一个为什么更新不成功呢?另外,如果我想对add字段插入值应该怎么操作呢?谢谢!

阅读 3.2k
2 个回答

nModified:0不是写了么,没有匹配到。fruit是个数组所以 "fruit.price":price,是什么?
subdocs

上面说得没错,{nModified: 0}表示没找到。
看到你的评论在说$使用的问题,文档上也没有错,这样使用是没问题的。这条语句在shell中是可以成功执行的。
所以我觉得问题可能在你的model定义上,不妨发出来看看。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题