java - Hazelcast Json 对象查询
问题描述
我将这些 JSON 对象存储在 hazelcast
IMap<String, HazelcastJsonValue> hazelcast = instance.getMap("get");
我正在存储的 JSON
{"id":"01","name":"abc","age":33}
{"id":"02","name":" data","age":37}
{"id":"03","name":"abc","age":39}
如果我只想选择输出大于 35 的年龄字段:-
[37,39]
如何使用投影来做到这一点?
解决方案
这对我有用:
import com.hazelcast.core.*;
import com.hazelcast.projection.Projections;
import com.hazelcast.query.Predicates;
import org.junit.Test;
import java.util.Collection;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.junit.Assert.assertThat;
[...]
@Test
public void testJsonProjection() {
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
IMap<Integer, HazelcastJsonValue> map = instance.getMap("myMap");
map.set(0, new HazelcastJsonValue("{\"id\":\"01\",\"name\":\"abc\",\"age\":33}"));
map.set(1, new HazelcastJsonValue("{\"id\":\"02\",\"name\":\" data\",\"age\":37} "));
map.set(2, new HazelcastJsonValue("{\"id\":\"03\",\"name\":\"abc\",\"age\":39}"));
Collection<Long> projection = map.project(
Projections.singleAttribute("age"),
Predicates.greaterEqual("age", 35)
);
assertThat(projection, containsInAnyOrder(37L, 39L));
}
推荐阅读
- java - 活动主抽屉未正确打开
- sql - 如何使用具有不同值的连接表获取值?
- python - 当预测值是匹配的索引对时,如何实现 SVM 模型?
- r - 如何根据列表名称元素绑定两个文件?
- flutter - 如何在飞镖中创建多个构造函数?
- java - Java Spring MVC 视图渲染和绑定 ArrayList
使用表单提交返回控制器 - asp.net - FileNotFoundException:无法加载文件或程序集'SendGrid,版本 = 9.11.0.0
- javascript - 向打字稿中的字符串添加空格(角度)
- angular - 是否可以在 AGM(Angular Google Map)中绘制多个纬度和经度进行跟踪?
- xml - 为什么 XSL/XPath 认为这个零是一个字符串?