0

我正在使用 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)));

那么几个结果呢?如果可以找到限制和偏移量,我还会徘徊吗?

4

1 回答 1

1

MongoGridFS::find()返回一个MongoGridFSCursor,它扩展了MongoCursor->skip()->limit()在 MongoCursor 上可用。

MongoGridFS::find() 语法与MongoCollection::find() 语法相同。

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

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

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

最后迭代结果:

foreach($MongoGridFSCursor as $MongoGridFSFile) {
}

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

于 2013-10-21T17:51:46.037 回答