NGSI Go tutorial for NGSIv2
NGSI v2 CRUD operation
Print host information
ngsi broker get --host orion
brokerHost http://orion:1026
ngsiType v2
Version
ngsi version -h orion
Create a New Data Entity
This example adds a new Product entity ("Lemonade" at 99 cents) to the context.
1 Request:
ngsi create entity \
--data ' {
"id":"urn:ngsi-ld:Product:010", "type":"Product",
"name":{"type":"Text", "value":"Lemonade"},
"size":{"type":"Text", "value": "S"},
"price":{"type":"Integer", "value": 99}
}'
2 Request:
ngsi get entity --id urn:ngsi-ld:Product:010 --type Product
Create a New Attribute
This example adds a new specialOffer attribute to the existing Product entity with id=urn:ngsi-ld:Product:001.
3 Request:
ngsi append attrs --id urn:ngsi-ld:Product:010 \
--data '{
"specialOffer":{"value": true}
}'
4 Request:
ngsi get entity --id urn:ngsi-ld:Product:001 --type Product
Batch Create New Data Entities or Attributes
This example uses the convenience batch processing endpoint to add two new Product entities and one new attribute
(offerPrice) to the context.
5 Request:
ngsi create entities \
--data '[
{
"id":"urn:ngsi-ld:Product:011", "type":"Product",
"name":{"type":"Text", "value":"Brandy"},
"size":{"type":"Text", "value": "M"},
"price":{"type":"Integer", "value": 1199}
},
{
"id":"urn:ngsi-ld:Product:012", "type":"Product",
"name":{"type":"Text", "value":"Port"},
"size":{"type":"Text", "value": "M"},
"price":{"type":"Integer", "value": 1099}
},
{
"id":"urn:ngsi-ld:Product:001", "type":"Product",
"offerPrice":{"type":"Integer", "value": 89}
}
]'
Batch Create/Overwrite New Data Entities
This example uses the convenience batch processing endpoint to add or amend two Product entities and one attribute
(offerPrice) to the context.
- if an entity already exists, the request will update that entity's attributes.
- if an entity does not exist, a new entity will be created.
6 Request:
ngsi upsert entities \
--data '[
{
"id":"urn:ngsi-ld:Product:011", "type":"Product",
"name":{"type":"Text", "value":"Brandy"},
"size":{"type":"Text", "value": "M"},
"price":{"type":"Integer", "value": 1199}
},
{
"id":"urn:ngsi-ld:Product:012", "type":"Product",
"name":{"type":"Text", "value":"Port"},
"size":{"type":"Text", "value": "M"},
"price":{"type":"Integer", "value": 1099}
}
]'
Read a Data Entity (verbose)
This example reads the full context from an existing Product entity with a known id.
7 Request:
ngsi upsert entities \
ngsi get entity --id urn:ngsi-ld:Product:010 --type Product
Read an Attribute from a Data Entity
This example reads the value of a single attribute (name) from an existing Product entity with a known id.
8 Request:
ngsi get attr --id urn:ngsi-ld:Product:001 --attr name
Read a Data Entity (key-value pairs)
This example reads the key-value pairs of two attributes (name and price) from the context of existing Product
entities with a known id.
9 Request:
ngsi get entity --keyValues --type Product --id urn:ngsi-ld:Product:001 --attrs name,price
{"id":"urn:ngsi-ld:Product:001","type":"Product","name":"Lemonade","price":99}
ngsi get attrs --keyValues --type Product --id urn:ngsi-ld:Product:001 --attrs name,price
{"name":"Lemonade","price":99}
Read Multiple attributes values from a Data Entity
This example reads the value of two attributes (name and price) from the context of existing Product entities
with a known ID.
10 Request:
ngsi get attrs --id urn:ngsi-ld:Product:001 --attrs name,price --values
List all Data Entities (verbose)
This example lists the full context of all Product entities.
11 Request:
ngsi list entities --type Product
List all Data Entities (key-value pairs)
This example lists the name and price attributes of all Product entities.
12 Request:
ngsi list entities --type Product -attrs name,price --keyValues
List Data Entity by ID
This example lists the id and type of all Product entities.
13 Request:
ngsi list entities --type Product -attrs name,price --keyValues
ngsi list entities --type Product -attrs id
Update Operations
Overwrite the value of an Attribute value
This example updates the value of the price attribute of the Entity with id=urn:ngsi-ld:Product:001
14 Request:
ngsi update attr --id urn:ngsi-ld:Product:001 --attr price --data 89
Overwrite Multiple Attributes of a Data Entity
This example simultaneously updates the values of both the price and name attributes of the Entity with
id=urn:ngsi-ld:Product:001.
15 Request:
ngsi update attrs --id urn:ngsi-ld:Product:001 \
--data ' {
"price":{"type":"Integer", "value": 89},
"name": {"type":"Text", "value": "Ale"}
}'
Batch Overwrite Attributes of Multiple Data Entities
This example uses the convenience batch processing endpoint to update existing products.
16 Request:
ngsi update entities \
--data '[
{
"id":"urn:ngsi-ld:Product:001", "type":"Product",
"price":{"type":"Integer", "value": 1199}
},
{
"id":"urn:ngsi-ld:Product:002", "type":"Product",
"price":{"type":"Integer", "value": 1199},
"size": {"type":"Text", "value": "L"}
}
]'
Batch Create/Overwrite Attributes of Multiple Data Entities
This example uses the convenience batch processing endpoint to update existing products.
17 Request:
ngsi upsert entities \
--data '[
{
"id":"urn:ngsi-ld:Product:001", "type":"Product",
"price":{"type":"Integer", "value": 1199}
},
{
"id":"urn:ngsi-ld:Product:002", "type":"Product",
"price":{"type":"Integer", "value": 1199},
"specialOffer": {"type":"Boolean", "value": true}
}
]'
Batch Replace Entity Data
This example uses the convenience batch processing endpoint to replace entity data of existing products.
18 Request:
ngsi replace entities \
--data '[
{
"id":"urn:ngsi-ld:Product:010", "type":"Product",
"price":{"type":"Integer", "value": 1199}
}
]'
Delete Operations
Delete an Entity
This example deletes the entity with id=urn:ngsi-ld:Product:001 from the context.
19 Request:
ngsi delete entity --id urn:ngsi-ld:Product:010
Delete an Attribute from an Entity
This example removes the specialOffer attribute from the entity with id=urn:ngsi-ld:Product:001.
20 Request:
ngsi delete attr --id urn:ngsi-ld:Product:001 --attr specialOffer
Batch Delete Multiple Entities
This example uses the convenience batch processing endpoint to delete some Product entities.
21 Request:
ngsi delete entities \
--data '[
{
"id":"urn:ngsi-ld:Product:001", "type":"Product"
},
{
"id":"urn:ngsi-ld:Product:002", "type":"Product"
}
]'
Batch Delete Multiple Attributes from an Entity
This example uses the convenience batch processing endpoint to delete some attributes from a Product entity.
22 Request:
ngsi delete entities \
--data '[
{
"id":"urn:ngsi-ld:Product:003", "type":"Product",
"price":{},
"name": {}
}
]'
Find existing data relationships
This example returns the key of all entities directly associated with the urn:ngsi-ld:Product:001.
23 Request:
ngsi list entities -q "refProduct%==urn:ngsi-ld:Product:001" --attrs type