首页 > 解决方案 > mongodb ruby​​ delete_all 嵌套文档

问题描述

我正在尝试使用 MongoDB Ruby-Driver 在嵌套文档中实现 delete_all。它将被合并到一个bulk_write中。

模型:

User
- Addresses # which is a nested model within User model

我可以使用 Mongoid 做到这一点:user.addresses.delete_all

但我需要使用 MongoDB Ruby 驱动程序来实现它。我试过这个,但它不工作:

{
:update_one => {
  :filter => { "_id" => customer.id },
  :update => { "$unset" => { "addresses":{} } },
  :upsert => false 
}
}

我也试过这个,它不起作用

{
  :update_one => {
      :filter => { "_id" => customer.id },
      :update => { "$pullAll" =>  { :addresses => [{ :category => "default"}, { :category => "work"}] }},
      :upsert => false
  }
}

有什么建议么?

标签: ruby-on-railsrubymongodb

解决方案


我想通了,应该是:

{
:update_one => {
  :filter => { "_id" => customer.id },
  :update => { "$set" => { "addresses":[] } },
  :upsert => false 
}
}

推荐阅读