Как мне обновить неуникальное свойство во Freebase?

Я работал над счетчиком калорий и медленно продвигаюсь в написании MQL. Проблема, с которой я сейчас сталкиваюсь, - это обновление самого рецепта, который находится в /common/topic/description имущество.

В настоящее время я использую запрос:

[{
  id: recipeId, // previously retrieved
  '/common/topic/description': {
    connect: 'replace',
    value: $('#description textarea').val(),
    lang: '/lang/en'
  }
}]

Это успешно выполняется, но когда я запрашиваю ( другой) после его запуска, я получаю сообщение об ошибке:

{
  "domain": "global",
  "reason": "invalid",
  "message": "Unique query may have at most one result. Got 2",
  "locationType": "other",
  "location": "/common/topic/description"
}

Согласно документации, connect: replace обновляет уникальные свойства и вставляет неуникальные. Так я получаю это, потому что значение было вставлено?

Нужно ли удалять другое значение, чтобы предотвратить ошибку? Нужно ли знать существующее значение, чтобы удалить его?

{
  id: recipeId,
  '/common/topic/description': {
    connect: 'delete',
    value: 'Value currently stored',
    lang: '/lang/en'
  }
}

1 ответ

Решение

Проблема не имеет ничего общего с обновлением неуникальных свойств. Ваш запрос на чтение является проблемой. Вы не процитировали ошибочный запрос, но часть сообщения об ошибке, которая говорит "location": "/common/topic/description" это твой намек. Эта тема имеет два описания: одно пустое, а другое нет, но вы не использовали нотацию массива в своем запросе.

Это будет работать:

[{
  "id": "/m/0wh83sg",
  "/food/recipe/ingredients": [{
    "id": null,
    "ingredient": {
      "id": null,
      "name": null,
      "/food/food/energy": null,
      "/common/topic/image": {
        "id": null,
        "optional": true,
        "limit": 1
      },
      "optional": true
    },
    "unit": {
      "id": null,
      "name": null,
      "optional": true
    },
    "quantity": null,
    "notes": null
  }],
  "/common/topic/description": [{}]
}]
Другие вопросы по тегам