有什么方法可以获取每个图形类(V,E及其子类)的记录计数?
我尝试针对当前情况以SQL格式构建查询:
SELECT @class, count(*) FROM V GROUP BY @class
SELECT @class, count(*) FROM E GROUP BY @class
但是使用count()
+GROUP BY
组合速度极慢。
尽管控制台命令list classes
可以快速运行并返回每个类(字段RECORDS
)中的记录数的值,但如何通过SQL查询(或通过OrientJS API)提取此计数呢?
主要思想是找到一种方法来:
技术细节
在OrientDB函数中,您可以访问orient
具有.getDatabase()
方法的变量。并且此方法返回JAVA的ODatabaseDocumentTx类实例。此类提供了.countClass(className)
返回该类的记录数的方法className
(方法文档),并且它的工作速度非常快。
解决方案
在OrientDB Studio中使用名称“ getClassCounts”,语言“ javascript”,幂等的函数:true:
var db = orient.getDatabase();
var classesRawInfo = db.getMetadata().getImmutableSchemaSnapshot().getClasses().toArray();
var classesList = {};
var i = classesRawInfo.length;
while(--i) {
var className = classesRawInfo[i].name;
classesList[className] = db.countClass(className);
}
return classesList;
执行中:
SELECT getClassCounts()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句