Как запросить колонку JSON с помощью вложенного ключа?JAVA

Программисты JAVA общаются здесь
Anonymous
Как запросить колонку JSON с помощью вложенного ключа?

Сообщение Anonymous »

Я использую griddb 5.3 с клиентом Java для хранения показаний датчиков IoT.
Каждое чтение хранится в коллекции, и в одном из столбцов содержится полезная нагрузка JSON в качестве строки.Properties props = new Properties();
props.setProperty("host", "127.0.0.1");
props.setProperty("port", "10001");
props.setProperty("clusterName", "defaultCluster");
props.setProperty("user", "admin");
props.setProperty("password", "admin");

GridStore store = GridStoreFactory.getInstance().getGridStore(props);

ContainerInfo info = new ContainerInfo();
info.setName("sensor_data");
info.setType(ContainerType.COLLECTION);
info.setColumnInfoList(Arrays.asList(
new ColumnInfo("id", GSType.INTEGER),
new ColumnInfo("timestamp", GSType.TIMESTAMP),
new ColumnInfo("payload", GSType.STRING) // JSON data stored here
));
store.putContainer(info);

Collection col = store.getCollection("sensor_data", Row.class);

String json1 = "{\"deviceId\":\"A1\",\"temp\":22.5}";
String json2 = "{\"deviceId\":\"A2\",\"temp\":28.1}";

Row row1 = col.createRow();
row1.setInteger(0, 1);
row1.setTimestamp(1, new Date());
row1.setString(2, json1);

Row row2 = col.createRow();
row2.setInteger(0, 2);
row2.setTimestamp(1, new Date());
row2.setString(2, json2);

col.put(row1);
col.put(row2);

< /code>
Чего я хочу, это запрос: < /p>
Find all rows where payload.deviceId = "A2". < /code>
В настоящее время, единственный способ, который я обнаружил: < /p>

Выберите все строки < /li>
Проанализировать json в java < /li>
Фильтр вручную < /li>
< /ul>
Это работает, но медленное с большими причинами. /> мой вопрос: < /strong> < /p>
Есть ли способ, чтобы Griddb для фильтрации строк непосредственно с помощью вложенного значения JSON внутри строкового столбца, без получения и проповедения всего в приложении? сделать это на Java.

Подробнее здесь: https://stackoverflow.com/questions/797 ... nested-key

Вернуться в «JAVA»