我正在使用MongoDB GridFS来存储一些用户头像。我的后端是PHP。
在某些页面上,我需要显示单个用户的所有图像。所以我有蒙戈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)));
那么几个结果呢?而且我也徘徊,如果可以找到限制和偏移量?
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?