我正在研究卡路里计数器,我可以创建新食谱,但在尝试更新成分时遇到问题。
我可以使用以下 mql 创建成分:
{
id: recipeId,
'/food/recipe/ingredients': {
create: 'unless_exists',
id: null,
quantity: parseFloat( row.$quantity.val() ),
unit: {
id: row.$units.val()
},
ingredient: {
id: row.ingredientId
}
}
}
但是,如果我更改成分的量度,例如从 2 杯到 3 杯,则此查询将创建一种新成分。我一直在尝试更新条目。到目前为止,我已经尝试过:
{
connect: 'update',
id: row.rowId,
type: '/food/recipe_ingredient',
quantity: parseFloat( row.$quantity.val() ),
unit: {
id: row.$units.val()
},
ingredient: {
id: row.ingredientId
}
}
这会导致错误:Can't use [], [{}] or {} in a write
。
{
connect: 'update',
id: row.rowId,
type: '/food/recipe_ingredient',
quantity: parseFloat( row.$quantity.val() )
}
导致错误:Can't use 'connect' at the root of the query
.
{
id: recipeId,
'/food/recipe/ingredients': {
connect: 'update',
id: row.rowId,
type: '/food/recipe_ingredient',
quantity: parseFloat( row.$quantity.val() )
}
}
我得到错误:Can't use 'connect': 'update' on a non-unique master property
。
{
id: row.rowId,
type: '/food/recipe_ingredient',
quantity: {
connect: 'update',
value: parseFloat( row.$quantity.val() )
}
}
导致错误:This value is already in use. Please delete it first.
删除旧成分并添加新成分的唯一方法是什么?
如果唯一的方法是删除旧条目并替换它们,有没有办法一次删除所有成分,而不是单独使用如下查询:
{
id: recipeId,
'/food/recipe/ingredients': {
connect: 'delete',
id: row.rowId
}
}