没有错误,也没有结果。
我的查询如下:

Array
(
    [$or] => Array
        (
            [0] => Array
                (
                    [title] => Array
                        (
                            [$regex] => /.*Palmer \- The ArT oF.*/
                            [$options] => i
                        )

                )

        )

)

如果我将title更改为与数据库中的整个字符串匹配,则可以工作。
我用mongochef尝试了同样的查询,结果成功了。
还尝试使用以下命令更改title值:
1。new MongoDB\BSON\Regex('Palmer - The ArT oF', 'i');
2。直接正则表达式字符串/.*Palmer \- The ArT oF.*/i
……但还是没有结果。
这是find()操作的游标对象:
MongoDB\Driver\Cursor Object
(
    [cursor] => Array
        (
            [stamp] => 0
            [is_command] =>
            [sent] => 1
            [done] => 1
            [end_of_event] => 1
            [in_exhaust] =>
            [has_fields] =>
            [query] => stdClass Object
                (
                    [$query] => stdClass Object
                        (
                            [$or] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [title] => stdClass Object
                                                (
                                                    [$regex] => /.*Palmer \- The ArT oF.*/
                                                    [$options] => i
                                                )

                                        )

                                )

                        )

                )

            [fields] => stdClass Object
                (
                )

            [read_preference] => Array
                (
                    [mode] => 1
                    [tags] => Array
                        (
                        )

                )

            [flags] => 0
            [skip] => 0
            [limit] => 0
            [count] => 1
            [batch_size] => 0
            [ns] => laravel.movie_list
        )

    [server_id] => 1
)

我用mongo-php-library来做这个手术。

最佳答案

我们应该使用“^hello”而不是“^hello/”。因此,以下方法将起作用:

$filter = ['NAME' => new MongoDB\BSON\Regex('^Hello', 'i')]; // Works
$cursor = $collection->find($filter);

就这样。

09-10 18:26