2015-02-06 41 views
1

OrientDB允許創建服務器端JavaScript函數。 有什麼辦法可以訪問服務器端JavaScript函數中的中間查詢結果。例如。如果我返回查詢結果,我會按預期得到json響應數組。但是,如果我嘗試訪問查詢結果之間的功能,如:OrientDB:訪問服務器端函數中的查詢結果數據

var comps = db.query("SELECT code from Company"); 

db.begin(); 
for(var i=0; i<comps.length; i++){ 
    var c = comps[i]; 
    db.save({ 
    "@class":"Temp", 
    col: c.code 
    }); 
} 
db.commit(); 

return comps; 

對於上述功能,我得到存儲在列「col」中的空白值。

根據我的觀察,OrientDb在函數內返回上下文而不是實際結果。

在此先感謝。

回答

1

c.code替換爲c.field("code")

+0

查詢結果中的字段(名稱)是否在OrientDB 2.x的javascript函數中工作?我無法讓它工作。我會得到空值。 – 2015-06-23 09:40:17

1

根據你的評論「OrientDb在函數內部返回上下文而不是實際結果」我假定你正在使用Java 8.問題是OrientDB的行爲在這方面與Java 8和Java 7不同(因爲不同的底層Javascript引擎:Nashorn vs Rhino)。有幾個已知的(相關的)問題,例如參見this thread