Добавление/обновление/удаление вложенного массива в algolia

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

// adding
index.partialUpdateObject({
  myfield: {
    value: 'myvalue',
    _operation: 'Add'
  },
  objectID: 'myID'
})

/removing
index.partialUpdateObject({
  myfield: {
    value: 'myvalue',
    _operation: 'Remove'
  }
})

Это хорошо работает, когда массив представляет собой строку или число. Однако представьте, что у меня есть эта структура документа, где массивы на самом деле являются вложенными объектами:

{
  first_name: String,
  last_name: String,
  subjects: [
    {
      itemId: String,
      title: String,
      randomField: String,
      dateAdded: Date
    }
  ]
}

В этом случае документация algolia очень неясна. Например, представьте себе следующие сценарии:

  • Я хочу обновить поле randomField определенного элемента массива. Я хочу иметь возможность обновлять элемент вложенного массива на itemId.
  • Я хочу иметь возможность добавлять или удалять вложенные элементы массива. В этом случае, что я передаю в поле «значение» при выполнении partialUpdateObject.

Возможно ли подобное в Алголии? Каковы будут ваши рекомендации?


person Zach    schedule 18.05.2016    source источник
comment
Что я решил сделать, так это получить объект из Algolia, манипулировать массивом, а затем выполнить обновление всего объекта массива.   -  person Zach    schedule 19.05.2016
comment
ответ все еще правильный прямо сейчас?   -  person Andrey    schedule 20.10.2019


Ответы (1)


Невозможно добавить/обновить/удалить определенный атрибут вложенного массива с помощью функции partilUpdateObject.

Вы делаете это правильно, извлекая объект, изменяя и обновляя его после. :)

person aseure    schedule 24.05.2016
comment
это все еще так? - person Razvan Cristian Lung; 31.03.2020