当我将返回结果的数量限制为 40 时,为什么$cursor返回 45 限制


Why $cursor return 45 limits when I limit the number of returned result to 40

    $startplushowmany=$startfrom+$howmany; //$startplush is 40
    $cursor=$cursor->limit($startplushowmany);  
    $numberReturned=$cursor->count();   //$numberReturned is 45

我无法向您展示$cursor的内容,因为$cursor不实现_toString。请让我知道该怎么做。

现在,$cursor中的查询由以下命令定义: $cursor = $collection->find($rangeQuery, $field(;

$rangeQuery在哪里

(string:592) Array
(
    [LongitudeLatitude] => Array
        (
            [$within] => Array
                (
                    [$center] => Array
                        (
                            [0] => Array
                                (
                                    [0] => 106.772835
                                    [1] => -6.186753
                                )
                            [1] => 0.044983732050783
                        )
                )
        )
    [indexContents] => bas
    [Prominent] => Array
        (
            [$gte] => 15
        )
)

$field是

(string:39) Array
(
    [LongitudeLatitude] => 1
)

您需要使用布尔标志来考虑计数限制,否则它会给出实际计数

$numberReturned=$cursor->count(true);

引用PHP文档中的示例:

<?php
$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));
$cursor = $collection->find();
var_dump($cursor->count());
var_dump($cursor->count(true));
$cursor->limit(2);
var_dump($cursor->count());
var_dump($cursor->count(true));
?>

将输出:

int(3)
int(3)
int(3)
int(2)