在学习使用Mongo和PHP的过程中,并坚持这一点。 我在Mongo有一个具有以下结构的集合:
array(3){
["timehack"]=>int(..),
["_id"]=>object..,
["series"]=>
array(3){
[0]=>int(..),
[1]=>int(..),
[2]=>int(..)
}
}
我正在尝试查询集合,所以我在“系列”中获得了第一项的所有样本,例如:
$cursor = $collection->find();
$cursor->fields(array=>("timehack"=>true, "_id"=>false, "series.0"=>true));
$arr = $cursor->getNext();
var_dump($arr);
生成的系列数组为空。我怎样才能获得所需的索引? (我意识到我可以获得系列中的所有示例,然后使用代码进行过滤,但我想知道如何使用查询来完成此操作)。感谢。
答案 0 :(得分:0)
在上面的评论中,您已经确认这适用于shell中的$ slice运算符。那么,为了举例说明$ slice如何在PHP中运行,我推荐你到驱动程序本身的PHP测试。
看看github上的tests / MongoCollectionTest2.php文件中的第33行:
https://github.com/mongodb/mongo-php-driver/blob/master/tests/MongoCollectionTest2.php
代码如下:
$m = new Mongo();
$db = new MongoDB($m, "phpunit");
$this->object = $db->selectCollection('c');
...
...
$results = $this->object->find(array(),array("x" => array('$slice' => 3)))->getNext();
与shell相比,它看起来有点复杂,有很多演员作为对象正在进行(如果我正在阅读它),但希望足以让你开始:)