REAL 日期和时间查询
REQL Date and time queries
我的文档包含以下字段:
"valid_from": "Mar 17 08:55:04 2011 GMT"
"valid_to": "Mar 16 08:55:04 2017 GMT"
我的基本查询目前如下所示:
r.db('items').table('token')
如何只查询 retrieve/filter 当前日期时间(现在)和 "valid_to" 字段之间的文档?即 "valid_to" 日期小于当前 date/time 的任何内容都被视为已过期。
计算 "valid_from" 和 "valid_to" 字段之间的天数。即确定以天为单位的有效期。
#1
所以,基本上您想要所有尚未过期的文件? (valid_to
) 在未来?
为此,您绝对应该使用 RethinkDB time/date 函数。为此,您必须使用 r.time
or r. ISO8601
创建一个时间实例。这方面的一个例子是:
r.table('tokens')
.insert({
"valid_from": r.ISO8601("2011-03-17T08:55:04-07:00"),
"valid_to": r.ISO8601("2017-03-17T08:55:04-07:00")
})
一旦您 inserted/update 使用这些函数的文档,您就可以使用 RethinkDB 的 time/date 函数查询它们。如果你想要 valid_to
以后的所有文档,你可以这样做:
r.table('tokens')
.filter(r.row['valid_to'] > r.now())
如果你想得到所有valid_to
是未来而valid_from
是过去的文档,你可以这样做:
r.table('tokens')
.filter(r.row['valid_to'] > r.now())
.filter(r.row['valid_from'] < r.now())
#2
如果这两个属性(valid_to
和 valid_from
)都是 time/date 对象,您可以通过执行以下操作向每个文档添加 days
属性以下:
r.table('tokens')
.merge({
// Subtract the two properties. Divide by seconds * minutes * hours
"days": (r.row['valid_to'] - r.row['valid_from']) / (60 * 60 * 24)
})
Python代码
import rethinkdb as r
conn = r.connect()
cursor = r.table('30715780').filter(r.row['valid_to'] < r.now()).count().run(conn)
print list(cursor)
我的文档包含以下字段:
"valid_from": "Mar 17 08:55:04 2011 GMT"
"valid_to": "Mar 16 08:55:04 2017 GMT"
我的基本查询目前如下所示:
r.db('items').table('token')
如何只查询 retrieve/filter 当前日期时间(现在)和 "valid_to" 字段之间的文档?即 "valid_to" 日期小于当前 date/time 的任何内容都被视为已过期。
计算 "valid_from" 和 "valid_to" 字段之间的天数。即确定以天为单位的有效期。
#1
所以,基本上您想要所有尚未过期的文件? (valid_to
) 在未来?
为此,您绝对应该使用 RethinkDB time/date 函数。为此,您必须使用 r.time
or r. ISO8601
创建一个时间实例。这方面的一个例子是:
r.table('tokens')
.insert({
"valid_from": r.ISO8601("2011-03-17T08:55:04-07:00"),
"valid_to": r.ISO8601("2017-03-17T08:55:04-07:00")
})
一旦您 inserted/update 使用这些函数的文档,您就可以使用 RethinkDB 的 time/date 函数查询它们。如果你想要 valid_to
以后的所有文档,你可以这样做:
r.table('tokens')
.filter(r.row['valid_to'] > r.now())
如果你想得到所有valid_to
是未来而valid_from
是过去的文档,你可以这样做:
r.table('tokens')
.filter(r.row['valid_to'] > r.now())
.filter(r.row['valid_from'] < r.now())
#2
如果这两个属性(valid_to
和 valid_from
)都是 time/date 对象,您可以通过执行以下操作向每个文档添加 days
属性以下:
r.table('tokens')
.merge({
// Subtract the two properties. Divide by seconds * minutes * hours
"days": (r.row['valid_to'] - r.row['valid_from']) / (60 * 60 * 24)
})
Python代码
import rethinkdb as r
conn = r.connect()
cursor = r.table('30715780').filter(r.row['valid_to'] < r.now()).count().run(conn)
print list(cursor)