0

私はカロリーカウンターに取り組んでおり、MQL の書き込みをゆっくりと進めています。私が現在抱えている問題は、/common/topic/descriptionプロパティにあるレシピ自体を更新することです。

私が現在使用しているクエリは次のとおりです。

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

これは実行に成功しますが、実行後に( another ) をクエリすると、エラーが発生します。

{
  "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'
  }
}
4

1 に答える 1

1

この問題は、一意でないプロパティの更新とは何の関係もありません。読み取りクエリが問題です。失敗したクエリを引用しませんでしたが、エラーメッセージの一部が"location": "/common/topic/description"ヒントです。そのトピックには 2 つの説明があり、1 つは空で、もう 1 つはそうではありませんが、クエリで配列表記を使用していません。

これはうまくいきます:

[{
  "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": [{}]
}]
于 2013-09-03T01:56:29.397 に答える