如何使用Orientjs构建或喜欢查询?

时间:2017-10-17 04:59:17

标签: orientdb orientdb2.2 orientjs

我正在研究简单的查询构建器,它将用于生成orientdb查询。 Orientjs有一个可用于生成查询的statement.js,但我不确定是否可以用来生成所有类型的查询。

例如:

select * from Employee where (FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")

我尝试使用orientjs语句生成上述查询的不同选项,但不能。另外,我们如何使用insert生成查询来复制记录,选择查询?

statement.js是否支持生成此类查询?

1 个答案:

答案 0 :(得分:3)

对于复杂的where子句,您只需使用原始字符串:

db.select()
  .from('Employee')
  .where('(FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")').all();

要使用select / insert创建顶点副本,可以通过db.let函数创建事务,例如

return this.db
    .let('original', (c) => {
        c.select()
        .from('Employee')
        .where('(FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")')
        })
     .let('copy', (c) => {c
         .create('vertex','Employee')
         .set('FirstName = $original[0].FirstName')
         .set('LastName = $original[0].LastName')
          })
    .commit()
    .return('$copy')
    .one();