2014-02-24 93 views
3

我v發佈我的問題前幾天在官方arangodb網站,但沒有運氣沒有人回答它。所以我來到這裏。下面是我的問題:是否有可能實現PHP會話處理程序與arangodb

只是想知道如果使用arangoDb作爲php sessionHandler,我該如何刪除會話數據過期!

如果使用mogodb或mysql來存儲會話數據,我們可以使用這樣的語句來刪除過期的數據:db.session.remove({expire:{$ gt:}}) 或sql:delete from tbl_session在哪裏過期<:過期

我只是想知道如何在arangodb中實現這個功能。 :)

+0

你最初在哪裏發佈問題?您能否給我們發送鏈接,以便我們瞭解爲什麼我們沒有收到通知。該官方論壇位於https://groups.google.com/forum/#!forum/arangodb問題跟蹤器,網址爲https://github.com/triAGENS/ArangoDB/issues?state=open – fceller

+0

可能是我張貼在錯誤的地方(最好有一個討論arangoDb的irc頻道,你有這個計劃嗎?):https://www.arangodb.org/2013/03/15/getting-started-with-arangodb-and -symfony-part4#comment-1252752390 – yiqing

回答

3

我們還不支持修改AQL。 所以,你需要執行一些代碼:

var q = db._query("FOR s in session filter s.expire < 1393231738788 return s"); 
while (q.hasNext()) { 
    db.session.remove(q.next()); 
} 
+0

感謝您的回覆! – yiqing

1

mchacki的答案是正確的,直到ArangoDB 2.2。

自2.2我們已經修改查詢,以便爲我們的數據庫新的查詢應該是這樣的:

FOR s IN sessions 
    FILTER s.expire < DATE_NOW()-86400000 
    REMOVE s IN sessions 

有了這個例子一天的會議將被刪除。