我的文档包含以下字段:
"valid_from": "Mar 17 08:55:04 2011 GMT"
"valid_to": "Mar 16 08:55:04 2017 GMT"我的基本查询目前看起来如下:
r.db('items').table('token')发布于 2015-06-08 18:14:10
#1
因此,基本上您希望所有尚未过期的文档(valid_to)都在未来?
为了做到这一点,您应该明确地使用RethinkDB时间/日期函数。但是,要做到这一点,您必须使用r.time或r. ISO8601创建一个time实例。这方面的一个例子是:
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")
})使用这些函数插入/更新文档后,可以使用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)https://stackoverflow.com/questions/30715780
复制相似问题