Fiware Orion:如何根据属性值删除实体
Fiware Orion: how to delete entities based on attribute values
我在 Orion 上下文代理中有许多实体,例如以下实体。 user_id属性用于区分不同用户生成的实体
{
"_id": {
"id": "customCommands",
"type": "Command",
"servicePath": "/"
},
"attrNames": ["command", "user_id"],
"attrs": {
"command": {
"type": "string",
"creDate": 1455195329,
"modDate": 1455195329,
"value": "RASPBERRY_ID"
},
"user_id": {
"type": "string",
"creDate": 1455195329,
"modDate": 1455195329,
"value": "e260d1c6-f39e-4257-9f3e-91a82b281772"
}
},
"creDate": 1455195329,
"modDate": 1455195329
}
我想根据 user_id 属性的值删除一些这样的实体。我尝试使用如下过滤功能(restriction 元素)来指定希望删除其实体的用户。 json 发布到 http://my_ip:my_port/v1/updateContext/,我指定了以下 headers:接受:application/json 和 Content-Type: application/json
{
"contextElements": [{
"type": "Command",
"id": "customCommands"
}],
"restriction": {
"scopes": [{
"type": "FIWARE::StringQuery",
"value": "user_id==e260d1c6-f39e-4257-9f3e-91a82b281772"
}]
},
"updateAction": "DELETE"
}
但是,我收到以下错误。
{
"errorCode": {
"code": "400",
"reasonPhrase": "Bad Request",
"details": "JSON Parse Error: unknown field: /restriction"
}
}
我是不是做错了什么,或者限制对删除实体不起作用?如果是这样,我该怎么办?
restriction
元素只能在 queryContext
中使用。因此,在 updateContext
中使用它是不允许的,这解释了您收到的错误消息。
但是,一个简单的解决方法是分两步进行。首先,使用 queryContext
和 restriction
来删除所有实体。然后,您可以对所有这些实体执行 updateContext
,并将 updateAction 设置为 DELETE
。
我在 Orion 上下文代理中有许多实体,例如以下实体。 user_id属性用于区分不同用户生成的实体
{
"_id": {
"id": "customCommands",
"type": "Command",
"servicePath": "/"
},
"attrNames": ["command", "user_id"],
"attrs": {
"command": {
"type": "string",
"creDate": 1455195329,
"modDate": 1455195329,
"value": "RASPBERRY_ID"
},
"user_id": {
"type": "string",
"creDate": 1455195329,
"modDate": 1455195329,
"value": "e260d1c6-f39e-4257-9f3e-91a82b281772"
}
},
"creDate": 1455195329,
"modDate": 1455195329
}
我想根据 user_id 属性的值删除一些这样的实体。我尝试使用如下过滤功能(restriction 元素)来指定希望删除其实体的用户。 json 发布到 http://my_ip:my_port/v1/updateContext/,我指定了以下 headers:接受:application/json 和 Content-Type: application/json
{
"contextElements": [{
"type": "Command",
"id": "customCommands"
}],
"restriction": {
"scopes": [{
"type": "FIWARE::StringQuery",
"value": "user_id==e260d1c6-f39e-4257-9f3e-91a82b281772"
}]
},
"updateAction": "DELETE"
}
但是,我收到以下错误。
{
"errorCode": {
"code": "400",
"reasonPhrase": "Bad Request",
"details": "JSON Parse Error: unknown field: /restriction"
}
}
我是不是做错了什么,或者限制对删除实体不起作用?如果是这样,我该怎么办?
restriction
元素只能在 queryContext
中使用。因此,在 updateContext
中使用它是不允许的,这解释了您收到的错误消息。
但是,一个简单的解决方法是分两步进行。首先,使用 queryContext
和 restriction
来删除所有实体。然后,您可以对所有这些实体执行 updateContext
,并将 updateAction 设置为 DELETE
。