0

我正在开发用于生成 orientdb 查询的简单查询生成器。Orientjs 有 statement.js 可以用来生成查询,但我不确定我们是否可以用来生成所有类型的查询。

例如:

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

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

statement.js 是否支持生成这种类型的查询?

4

1 回答 1

2

对于复杂的 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();
于 2017-11-28T17:45:04.390 回答