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 に答える