OrientDB从所有图类中选择记录计数

伊万·马克

有什么方法可以获取每个图形类(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)提取此计数呢?

伊万·马克

主要思想是找到一种方法来:

  1. 获取数据库的所有类的列表
  2. 获取存储在每个类中的记录数

技术细节

在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;

执行中:

  • 通过SQL: SELECT getClassCounts()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Postgres从多个架构中选择(检索)所有记录

从表中选择给定编号所属的所有记录

SQLite选择计数大于1的所有记录

设置类的所有实例的样式,但CSS中选择的除外

如何从ap类中选择所有元素?

如何在acumatica中选择所有项目类

从表中的分组记录中选择除最后一条记录之外的所有记录

对于通过空itab的所有条目,从数据库中选择所有记录

SQL查询-如何从表中选择计数所有值并显示所有计数及其ID?

在BigQuery中选择没有记录的记录

如何从表中选择一列聚集并从关系表中选择所有记录[Laravel 5]

如何从具有以下关系的三个表中选择所有记录

如何使用mgo从golang的mongodb集合中选择所有记录

从所有客户中选择Rails中的最后一条记录

在has_many关联中选择所有符合条件的记录-Ruby On Rails

如何从包括所有行和列的表中选择唯一的单元格记录?

从2个表中选择所有记录-多对多EF C#

当联接表不匹配时,如何从一个表中选择所有记录?

如果校园名称包含“'Indiana”字样,我如何从校园表中选择所有记录?

在 SQL Server 中选择一个组内的所有记录

在“按SQL Server分组”中选择计数记录?

在单个查询中从多个表中选择记录计数

SQL-从单独表的列值中选择记录计数

jQuery从UL中选择所有LI,而不是在具有类的UL元素中

在BeautifulSoup中选择除具有某些类的div外的所有div

如何在javaScript中选择具有相同类名的所有类?

如何在cakephp 3.6中从一个表中选择所有记录并从另一个表中选择一些记录

SQL选择所有记录或特定记录

从一个表中选择所有记录并从另一个表中匹配记录