PHP + GridFS:拥有id

时间:2012-11-22 21:50:00

标签: php mongodb gridfs

我想使用MongoDB的GridFS保存许多文件但是我使用自己的id遇到了一些麻烦。我的简化代码如下:

<?php
$mongo = new Mongo();
$db = $mongo->myFiles;
$grid = $db->getGridFS();

var_dump($grid->storeBytes("ForTestingPurposes", array("_id" => new MongoID("mySampleId"), array("safe" => true))));
?>

我假设storeBytes()返回我自己的id(在本例中为“mySampleId”),但我得到的是这样的:

object(MongoId)#5 (1) { ["$id"]=> string(24) "50ae7542a34156852300003d" }

..来自Mongo的自动生成的ID。上面的代码有什么问题吗?谢谢你的任何建议......

1 个答案:

答案 0 :(得分:2)

PHP MongoId class仅适用于MongoDB ObjectIDs,它具有特定的12字节格式。

如果您想为_id使用自定义值,只需直接传递字符串,例如:

$grid->storeBytes("ForTestingPurposes", array("_id" => 'mySampleId', array("safe" => true))));