2017-10-17 80 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();