0

ドキュメントにオブジェクトとして値を持つフィールドがある場合、それはhttp://dl.dropbox.com/u/7017985/Screenshots/26.jpgMongoIdのような php に返されます。単純な文字列ではなく、単純な文字列のように返す方法はありますかオブジェクトとして。MongoId

なぜ私はそれが必要なのですか? 結果をJavaScriptブラウザ側に送信する必要があるためです。別のドキュメントへの参照である2〜3個のフィールドを持つドキュメントがあり、ObjectId.

4

4 に答える 4

0

私はあるとは思わない。

ObjectIdMongoDB は、フィールドがこの特定の形式をとるBSON ドキュメントの形式で入力と出力を受け取ります。

これは変更できないものです。

于 2013-04-23T16:49:46.967 に答える
0

クエリ結果をループして、すべての MongoId オブジェクトを文字列に変換できます。以下の関数は、MongoCollection::findOne() からの単一の結果配列、または MongoCollection::find() からの MongoCursor 結果のいずれかが与えられた場合、すべての ID を変換します。

function convert_mongoid_to_string(& $mongo_object)
{
    foreach($mongo_object as $mongo_key=>$mongo_element)
    {
        if(is_array($mongo_element)||is_object($mongo_element))
        {
            if(get_class($mongo_element) === "MongoId")
            {
                 //cast the object to the original object passed by reference
                 $mongo_object[$mongo_key]=(string)$mongo_element;
            }
            else
            {
                //recursively dig deeper into object looking for MongoId's
                convert_mongoid_to_string($mongo_element);
            }
        }
        else
        {
            //is scalar so just continue
            continue;
        }
    }
    return $mongo_object;
}
于 2013-04-23T20:39:58.880 に答える
0

MongoID がサポートしています__toString。文字列としてキャストするか、__toString直接呼び出すと、値が文字列に変換されます。

于 2013-04-14T20:02:00.500 に答える