【问题标题】:Updating/Pulling a value in an Array contained in a Subdocument Array in Mongodb/Mongoose更新/提取包含在 Mongodb/Mongoose 中的子文档数组中的数组中的值
【发布时间】:2019-12-28 10:04:59
【问题描述】:

我在 mongoDB 集合中有一个文档,如下所示:

 _id:'5d4721e0b904e825755eaf89',
 sellers:[
   {_id:'5d5eeaf7867a4e1e9a1219e6'
    bizs:[
       {_id:'6a5eeaf7867a4e124a1219a4',
       name:'Shop A'}
    ]},

 ]

我需要拉/删除商店 A(例如使用它的 _id)

到目前为止,我已经尝试使用位置运算符 $,但仍然无法访问它。

以下是我尝试过的代码:

Model.findByIdAndUpdate(someId, {
  "$pull": {
      'sellers.bizs.$._id':itemId
  }
})

但我得到 '位置运算符没有从查询中找到所需的匹配' 错误消息。

现在,我想将 Shop A 从位于 Sellers 数组中的 bizs 数组中拉出。

我如何做到这一点?

【问题讨论】:

  • 您是要拉出整个对象还是只在该对象中命名?
  • @srinivasy 我需要把整个文件拿出来

标签: mongodb mongoose


【解决方案1】:

请试试这个:

Model.findByIdAndUpdate(someId,
{ $pull : { 'sellers.$[].bizs': {"_id" : itemId,"name" : "Shop A" } }})

这里"name" : "Shop A" 是可选的。

【讨论】:

  • 工作就像一个魅力......你拯救了一百万条生命!谢谢@srinivas
猜你喜欢
  • 2012-11-26
  • 2015-02-18
  • 1970-01-01
  • 2018-01-26
  • 2016-12-31
  • 2014-11-03
  • 2017-03-31
  • 2020-05-01
相关资源
最近更新 更多