3

几天前,我在 arangodb 官方网站上发布了我的问题,但运气不好没有人回答。所以我来这里。以下是我的问题:

只是想知道如果使用 arangoDb 作为 php sessionHandler,我怎样才能删除过期的会话数据!

如果使用 mogodb 或 mysql 存储会话数据,我们可以使用这样的语句来删除过期数据: db.session.remove( { expire: { $gt :} } ) 或 sql : delete from tbl_session where expire<:到期

我只想知道如何在 arangodb 中实现这一点。:)

4

2 回答 2

3

我们尚不支持修改 AQL。所以你需要执行一些代码:

var q = db._query("FOR s in session filter s.expire < 1393231738788 return s");
while (q.hasNext()) {
  db.session.remove(q.next());
}
于 2014-02-24T08:53:39.187 回答
1

mchacki 的答案在 ArangoDB 2.2 之前是正确的。

从 2.2 开始,我们确实修改了查询,因此我们数据库的新查询如下所示:

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

在此示例中,将删除一天前的会话。

于 2015-04-10T14:18:34.210 回答