getAll returns 什么都没有? Rethink数据库
getAll returns nothing? RethinkDB
您好,我正在尝试从数据库中读取数据库中不同 "threads" 的消息,但每次我尝试时,我都会返回一个空数组,这让我认为有问题当我使用 get_all
命令请求所有线程时。像这样从数据库请求是否正确?完全没有错误,所以我一直很困惑,因为它应该返回消息的线程。
def threads(cls, clinic_id, db={}):
"""Threads
Returns the unique list of threads in the SMS log
Arguments:
clinic_id {uint} -- The unique ID of the clinic
db {dict} -- Optional DB info
Returns:
list
"""
# Get the info
dInfo = cls.info(db)
# Connect to the server
with connect_with(dInfo['server']) as oCon:
# Request all threads
itRes = r \
.db(dInfo['db']) \
.table(dInfo['tree']._name) \
.get_all([clinic_id, r.minval], [clinic_id, r.maxval], index="clinic_number") \
.pluck(['number']) \
.default(None) \
.distinct() \
.run(oCon)
# Return the list of numbers
return [d['number'] for d in itRes]
假设您在 clinic_id
中有一个名为 clinic_number 的二级索引,语法应该是:
.get_all(clinic_id, index="clinic_number")
除非您想获得一个范围,否则您可能应该使用 .between()
。
也不确定您传递的那个奇怪的数组参数应该是什么意思。
请注意,您需要一个辅助索引才能使该查询正常工作,否则您需要使用 .filter
,但这会强制执行非常低效的 table 扫描。
您好,我正在尝试从数据库中读取数据库中不同 "threads" 的消息,但每次我尝试时,我都会返回一个空数组,这让我认为有问题当我使用 get_all
命令请求所有线程时。像这样从数据库请求是否正确?完全没有错误,所以我一直很困惑,因为它应该返回消息的线程。
def threads(cls, clinic_id, db={}):
"""Threads
Returns the unique list of threads in the SMS log
Arguments:
clinic_id {uint} -- The unique ID of the clinic
db {dict} -- Optional DB info
Returns:
list
"""
# Get the info
dInfo = cls.info(db)
# Connect to the server
with connect_with(dInfo['server']) as oCon:
# Request all threads
itRes = r \
.db(dInfo['db']) \
.table(dInfo['tree']._name) \
.get_all([clinic_id, r.minval], [clinic_id, r.maxval], index="clinic_number") \
.pluck(['number']) \
.default(None) \
.distinct() \
.run(oCon)
# Return the list of numbers
return [d['number'] for d in itRes]
假设您在 clinic_id
中有一个名为 clinic_number 的二级索引,语法应该是:
.get_all(clinic_id, index="clinic_number")
除非您想获得一个范围,否则您可能应该使用 .between()
。
也不确定您传递的那个奇怪的数组参数应该是什么意思。
请注意,您需要一个辅助索引才能使该查询正常工作,否则您需要使用 .filter
,但这会强制执行非常低效的 table 扫描。