Как извлечь уникальные данные из Hyperledger Composer с помощью запроса или JS - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу получить уникальные данные из дубликатов данных в Hyperledger Composer.Как мне этого добиться?

предположим, что у меня есть такие данные

     [
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "1",
 "dataType" : "in",
 "productName": "A",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "2",
 "dataType": "in",
 "productName": “A",
 "quantity": 1,
 "country": "Unknown",
 "owner": "BABA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "3",
 "dataType": "out",
 "productName": "C",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "4",
 "dataType": "in",
 "productName": "C",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "5",
 "dataType": "out",
 "productName": "B",
 "quantity": 1,
 "country": "Unknown",
 "owner": "BABA"
}
] 

, что я хочу получить, это список уникальных названий продуктов.

Итак, результатЯ хочу, может быть, что-то вроде этого

 [
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "1",
 "dataType" : "in",
 "productName": "A",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "3",
 "dataType": "out",
 "productName": "C",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "5",
 "dataType": "out",
 "productName": "B",
 "quantity": 1,
 "country": "Unknown",
 "owner": "BABA"
}
] 

Меня не волнует последовательность.Я просто хочу знать, какое productName у меня есть в моей базе данных.

Я думаю, что это как-то связано с частью logic.js.Я могу делать запросы и получать данные, используя почтовый метод.Но я не знаю, как это сделать с помощью logic.js

Я не знаю, как получить данные из logic.js.Пример на официальной странице только удалить или обменять.Они не возвращают новые данные.

любая помощь приветствуется.Я хочу знать, как отправлять данные с помощью JS.

1 Ответ

0 голосов
/ 17 февраля 2019

Код js для получения уникального имени продукта из ваших данных будет

const data =[
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "1",
 "dataType" : "in",
 "productName": "A",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "3",
 "dataType": "out",
 "productName": "A",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "5",
 "dataType": "out",
 "productName": "B",
 "quantity": 1,
 "country": "Unknown",
 "owner": "BABA"
}
];

const distinctProductName = [...new Set(data.map(x => x.productName))];

У вас будет свое уникальное имя продукта в distinctProductName, но у вас не будет подробной информации о продукте.Судя по твоим вопросам, это тоже не казалось нужным.Если вам также нужны подробности, вы можете сделать что-то вроде

const data =[
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "1",
 "dataType" : "in",
 "productName": "A",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "3",
 "dataType": "out",
 "productName": "A",
 "quantity": 1,
 "country": "Unknown",
 "owner": "GAGA"
},
{
 "$class": "org.stock.mynetwork.Commodity",
 "time": "5",
 "dataType": "out",
 "productName": "B",
 "quantity": 1,
 "country": "Unknown",
 "owner": "BABA"
}
];

const result = Array.from(new Set(data.map(x => x.productName)))
                    .map(productName => {
                             return{
                                    productName: productName,
                                    dataType : data.find(x => x.productName ===productName).dataType
                                   //you can obtain other values as I obtained dataType
                                   };
                              });

. Ваши данные будут храниться в result.

...