mongodb ruby delete_all вложенный документ - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь реализовать delete_all во вложенном документе, используя MongoDB Ruby -Driver. Это будет включено в 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
  }
}

Есть предложения?

1 Ответ

0 голосов
/ 19 апреля 2020

Я разобрался, должно быть:

{
:update_one => {
  :filter => { "_id" => customer.id },
  :update => { "$set" => { "addresses":[] } },
  :upsert => false 
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...