PHP - RethinkDB 没有正确过滤小于

问题描述

我正在使用 rethinkdb for PHP 发现 HERE

我正在尝试过滤数据库中的几行。

对于我要检查的行之一,RethinkDB 表现得很奇怪,工作正常,但另一行却没有。

我检查了行的 var_dump 输出,可以看到值小于我的目标 - 50。

我检查表格的代码

public function checkCallbacks()
{
    $query = \r\table('payments')
        ->orderBy(['index' => \r\desc('dateCreated')])
        ->filter(function ($data) {
            return $data('forwarded')->eq((string) '1')
                //->rAnd($data('callbacks_sent')->lt((string)'50')) // Does not work
                ->rAnd($data('bad_callbacks_sent')->lt((string)'50')); // Works fine
        })
        ->run($this->conn);
    $query = $query->toArray();
    echo count($query);
    if (count($query) > 0) {
        return $query;
    }
    return false;
}

我只是在处理程序中运行它,例如:

public function checkPaymentsForCallbacks()
{
    $BAD_CALLBACK_LIMIT = 20;

    $payments = $this->payments->checkCallbacks();

    if (!$payments || $payments == false) {
        \ConsoleLogging::errorMessage("Failed to load payments or no payments with callbacks need sending",true,true);
    } else {
        $i = 0;

        $paymentDetails = [];

        // Foreach payment inside the database which is forwarded
        // We want to make it only send callbacks for when the result changes
        foreach ($payments as $payment) {
        etc......

这是表的转储输出图片 HERE

如您所见,除了 bad_callbacks_sent 为 0 和 callbacks_sent 为 8 之外,它们都是 STRINGS。 我想这是因为我听说过重复的名称会导致问题....

如果有人知道这个问题,我很想知道它为什么不起作用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)