Hyperledger Composer Query Language

In current version of Hyperledger Fabric, the LIMIT and SKIP is not supported it is so in Composer too.

THE DATA MODEL

enum UserRole {
o ADMIN
o MODERATOR
o USER
}
participant User identified by id {
o String id
o String name
o UserRole role
o String[] hobbies
--> Organization organization
}participant Organization identified by id {
o String id
o String name
}asset Product identified by id {
o String id
o String name
o String description
o Double quantity
o DateTime createdAt
--> Organization owner
}

QUERIES

query Q1 {
description: "Select all users based on role"
statement:
SELECT org.acme.User
WHERE (role == "ADMIN")
}

Also, you can give the value from parameter as below

query Q1 {
description: "Select all users based on role"
statement:
SELECT org.acme.User
WHERE (role == _$role)
}

Get users based on an organization To get the nodes based on their related or associated files you can use the wherewith following type

query Q2 {
description: "Select all users of an organization"
statement:
SELECT org.acme.User
WHERE (organization == "resource:org.acme.Organization#1")
}

Get Products with quantity more than minimal threshold We can use greater than or lesser than operators in integer or double values as follows.

query Q3 {
description: "Select all products above the minimum quantity"
statement:
SELECT org.acme.Product
WHERE (quantity > _$minimumThreshold)
}

Using AND operator

query Q4 {
description: "Select all products above the minimum quantity of an organization"
statement:
SELECT org.acme.Product
WHERE ((quantity > _$minimumThreshold) AND (owner == _$organization))
}

Using ORDER BY operator

query Q5 {
description: "Select all products above the minimum quantity of an organization and order by quantity"
statement:
SELECT org.acme.Product
WHERE ((quantity > _$minimumThreshold) AND (owner == _$organization))
ORDER BY quantity
}

Using CONTAINS operator

query Q6 {
description: "Select all users based on givien hobbies"
statement:
SELECT org.acme.User
WHERE (hobbies CONTAINS ['driving', 'swimming']
}

Mostly you can do all the querying with the above-mentioned operators, and also I think there will be even more complex queries in the future.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store