Hazelcast 计数机制
Hazelcast Count mechanism
我试图使用 hazelcast 聚合来执行计数操作。
示例:-
这里我要计算 json 中 salary1 字段的数量。
String json1 = "{\r\n" + " \"salary\": 200\r\n" + "}";
String json2 = "{\r\n" + " \"salary\": 300\r\n" + "}";
String json5 = "{\r\n" + " \"salary1\": 300\r\n" + "}";
map.put(1, new HazelcastJsonValue(json1));
map.put(2, new HazelcastJsonValue(json2));
map.put(3, new HazelcastJsonValue(json5));
Long count = map.aggregate(Aggregators.count("salary1"));
System.out.println("count is " + count);
我只有一个 salary1 字段,但它仍然提供完整的计数。
有什么问题?
我认为您需要先使用 Predicate
来过滤您计数的条目。请尝试以下操作。
Predicate p = Predicates.notEqual("salary1", null);
Long count = map.aggregate(Aggregators.count(), p);
我试图使用 hazelcast 聚合来执行计数操作。
示例:-
这里我要计算 json 中 salary1 字段的数量。
String json1 = "{\r\n" + " \"salary\": 200\r\n" + "}";
String json2 = "{\r\n" + " \"salary\": 300\r\n" + "}";
String json5 = "{\r\n" + " \"salary1\": 300\r\n" + "}";
map.put(1, new HazelcastJsonValue(json1));
map.put(2, new HazelcastJsonValue(json2));
map.put(3, new HazelcastJsonValue(json5));
Long count = map.aggregate(Aggregators.count("salary1"));
System.out.println("count is " + count);
我只有一个 salary1 字段,但它仍然提供完整的计数。
有什么问题?
我认为您需要先使用 Predicate
来过滤您计数的条目。请尝试以下操作。
Predicate p = Predicates.notEqual("salary1", null);
Long count = map.aggregate(Aggregators.count(), p);