我一直在研究calorie counter,我正在慢慢地在MQL写作上取得进展。我目前遇到的问题是更新/common/topic/description
属性中的配方本身。
我目前使用的查询是:
[{
id: recipeId, // previously retrieved
'/common/topic/description': {
connect: 'replace',
value: $('#description textarea').val(),
lang: '/lang/en'
}
}]
这成功执行,但是当我query(another)运行后我收到错误:
{
"domain": "global",
"reason": "invalid",
"message": "Unique query may have at most one result. Got 2",
"locationType": "other",
"location": "/common/topic/description"
}
根据the documentation,connect: replace
会对唯一属性进行更新,并对非唯一属性进行插入。我是否因为插入了一个值而得到了它?
是否有必要删除其他值以防止出错?我是否需要知道现有值才能将其删除?
{
id: recipeId,
'/common/topic/description': {
connect: 'delete',
value: 'Value currently stored',
lang: '/lang/en'
}
}
答案 0 :(得分: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": [{}]
}]