0

我想使用 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。我上面的代码有什么问题吗?感谢您的任何建议...

4

1 回答 1

2

PHP MongoId 类仅用于使用具有特定 12 字节格式的MongoDB ObjectID 。

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

$grid->storeBytes("ForTestingPurposes", array("_id" => 'mySampleId', array("safe" => true))));
于 2012-11-22T22:12:50.473 回答