getAll什么都不返回?重新思考数据库

时间:2018-07-09 20:32:36

标签: python rethinkdb

嗨,我正在尝试从数据库中读取数据库中消息的不同“线程”,但是每次尝试时,我都会返回一个空数组,这使我认为我在使用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]

RethinkDB

1 个答案:

答案 0 :(得分:0)

假设您在clinic_id中有一个名为clinical_number的二级索引,则语法应为:

.get_all(clinic_id, index="clinic_number")

除非您想获得一个范围,否则可能应该使用.between()

也不知道您传递的那个奇怪的数组参数是什么意思。

请注意,您需要一个辅助索引才能使该查询正常工作,否则需要使用.filter,但是这会强制执行非常不好的表扫描。