我想使用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。上面的代码有什么问题吗?谢谢你的任何建议......
答案 0 :(得分:2)
PHP MongoId class仅适用于MongoDB ObjectIDs,它具有特定的12字节格式。
如果您想为_id
使用自定义值,只需直接传递字符串,例如:
$grid->storeBytes("ForTestingPurposes", array("_id" => 'mySampleId', array("safe" => true))));