2017-10-17 82 views
0

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

例如:

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

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

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

回答

3

对于复杂的where子句,你可以只使用一个原始字符串:

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

要使用选择/插入创建一个顶点的副本,您可以通过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();