使用PHP获取ID中的GridFS文件

时间:2013-09-19 13:47:20

标签: php mongodb gridfs

我使用MongoDB GridFS来存储一些用户头像。我的后端是PHP。

在某些页面上,我需要用单个用户显示所有图像。所以我有Mongo ID。如何执行_id在给定ID中的查找查询。在mongo中,查询将是{"_id: {$in: [id1,id2]}。 在PHP中我有:

$gridFs = $this->getGridFs();
$photos = $gridFs->find();

其中find接受2个数组。如果我找到单个文件,那将是:

$photos = $gridFs->find(array('id' => new MongoId($id)));

那么几个结果怎么样? 如果有可能找到限制和偏移量,我也会徘徊?

1 个答案:

答案 0 :(得分:1)

MongoGridFS::find()会返回MongoGridFSCursor,其范围为MongoCursor。 MongoCursor上提供->skip()->limit()

MongoGridFS :: find()语法与MongoCollection::find() syntax

相同
$MongoGridFSCursor = $MongoGridFSObject->find(array(
    'id' => array('$in' => array($myMongoID1, $myMongoID2))
));

然后,您可以跳过某些结果并限制它们:

$MongoGridFSCursor->skip(3)->limit(8);

最后迭代结果:

foreach($MongoGridFSCursor as $MongoGridFSFile) {
}

我怀疑您的示例不正确,在查找查询中应该是_id,而不是id?