首页 > 解决方案 > 如何检查过滤后的请求是否返回空数组?

问题描述

我大约一年半前开始使用 Javascript,但大约一周前开始使用 Python,所以我仍然是这方面的初学者。所以我试图弄清楚用户是否已经存储到用户表中,如果没有,那么它会将它们添加到其中,如果它们是,那么它会跳过。

import rethinkdb as r


r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").run()

此代码应返回

<rethinkdb.net.DefaultCursor object at 0x03DAAE10> (done streaming):
[
]

那么我该如何检查它是否为空呢?

我尝试了类似的东西

if not r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").run():
    # add user to table
else:
    continue

但即使用户不在表中,它也会继续。所以请告诉我我做错了什么以及我如何才能让它发挥作用

标签: pythonrethinkdbrethinkdb-python

解决方案


文档中使用该is_empty功能:

r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").is_empty().run(conn)

你也可以使用count

r.db('bot').table('users').filter(r.row["id"] == "253544423110082589").count().run(conn)

推荐阅读