Я работаю над calorie counter, и я могу создавать новые рецепты, но у меня проблемы с обновлением ингредиента.Как обновить подобъект с помощью mql
я могу создать компонент со следующим 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
.
Результаты с ошибкой: 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
}
}
Какой язык вы используете? parseFloat() и $ quantity не являются выражениями MQL. Я предполагаю, что вы пытаетесь манипулировать CVT, не понимая, как они соединяются. –
Я строю запросы в javascript и эти записи разыгрывают значения. Они не передаются в конечную точку записи. – Will