如何使用OrientDB Document API筛选获取特定顶点?
可以通过Document API实现精准过滤,推荐以下两种方式:
方法一:使用带条件的查询(数据库层面过滤,高效推荐)
通过OSQLSynchQuery构建带条件的查询语句,直接在数据库端完成过滤,返回符合条件的ODocument对象,这是最高效的方式:
// 构建带过滤条件的同步查询 OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>("SELECT * FROM CityCars WHERE CarName = 'ABC'"); // 执行查询并获取匹配的顶点文档 List<ODocument> targetCars = database.query(query); // 遍历结果 for (ODocument car : targetCars) { System.out.println(car.field("CarName")); }
方法二:遍历全量数据后客户端过滤(仅适用于小数据量场景)
如果坚持使用browseClass方法,可以在遍历过程中手动判断字段值,但这种方式会加载所有CityCars顶点到内存,性能较差,仅适合数据量极小的场景:
for (ODocument car : database.browseClass("CityCars")) { String carName = car.field("CarName"); if ("ABC".equals(carName)) { System.out.println(carName); } }
注意:优先选择方法一,因为数据库端过滤能大幅减少网络传输的数据量和客户端内存占用,性能远优于客户端过滤。
内容的提问来源于stack exchange,提问作者Arpit Dongaonkar
相关产品推荐
相关产品推荐

