rethinkdb удалить вложенное свойство - PullRequest
0 голосов
/ 09 декабря 2018

У меня следующая структура таблицы -

{
  "id": 1,
  "prop": {
    "1": {
      "bunch-of-stuffs": "foo"
    },
    "2": {
      "bunch-of-stuffs": "bar"
    }
  }
}

Я хочу удалить «prop» с ключом «2», чтобы он выглядел так:

{
  "id": 1,
  "prop": {
    "1":{
      "bunch-of-stuffs": "foo"
    }
  }
}

Я пробовалобновить, но это не работает -

r.table ("sad"). get (1) .update ({"prop": {"1": {"связкаstuffs ":" foo "}}})

1 Ответ

0 голосов
/ 09 декабря 2018

В вашем конкретном случае вы можете просто вызвать функцию .replace, чтобы заменить весь документ, поскольку вы знаете каждое значение:

r.table("sad").get(1).replace({
 "id":1,
 "prop":{
    "1":{ "bunch-of-stuffs": "foo" }
  }
})

Если вы знаете идентификатор «проп», который вы хотитеудалить, вы можете использовать замену, как показано ниже, чтобы избежать отправки всего документа JSON по проводам:

r.table("sad").get(1).replace(function(doc){
      return {"id":1, "prop": doc("prop").without("2")}
})
...