2012-03-13 21 views
0

誰かが問題を抱えているかどうかを見ています。MongoDB、PHP、およびシリアライゼーションの問題

私のコレクションYには、MongoIDのシリアル化されたPHP配列が格納されているADJUというフィールドがあります。

一例フィールドが ある ":1:{I:0; 1:{S:4:\" MBID \ "; C:7:\" MongoId \ ":24:{4f2c5b9bb9a21d5010000005}} } 4f2c5b9bb9a21d5010000005 『」

パラメータIMが でさパッシング』

public function read_adjudicating(MongoID $account_identifier){ 
    $regexObj = new MongoRegex("/".$account_identifier->__toString()."/"); 
    var_dump($regexObj); 
    $result = $this->connection->X->Y->find(array('ADJU' => $regexObj), array('__id')); 
    var_dump($result); 

あなたが見ることができるように、一つの例は、間違いなくそれを持っているとき、それは、私に0レコードを与えている、なぜ誰もがうまくできますか?

ありがとうございました!

+0

phpエラーなど何もありません。「 – AlastairDewar

+1

なぜnosqlデータストアにシリアル化された文字列を格納するのですか?」 – AD7six

+0

パーツオブコンセプトとデータ前回のインストール時にMySQLから来た – AlastairDewar

答えて

1

まあ、それはクエリではありません。

db.illogical.insert({'ADJU': "a:1:{i:0;a:1:{s:4:\"MBID\";C:7:\"MongoId\":24:{4f2c5b9bb9a21d5010000005}}}"}) 
db.illogical.find({'ADJU': /4f2c5b9bb9a21d5010000005/}) 
{ "_id" : ObjectId("4f605b9e5d2b96c06d2adb27"), "ADJU" : "a:1:{i:0;a:1:{s:4:\"MBID\";C:7:\"MongoId\":24:{4f2c5b9bb9a21d5010000005}}}" } 

あなたが書いたPHPのコードは、あなたが期待するクエリに対応していないこと、またはデータは、あなたが期待する形式ではありません。

IMOには、mongoに挿入する前にデータをインポートするために使用したスクリプトを更新する方が良いですか?または、(PHP)スクリプトを書いて、それを逆シリアル化して再度保存します。

+0

私はvar_dumpを使ってデバッグを行っていましたが、イテレータ(MongoCollection)で動作しませんでした。 – AlastairDewar

関連する問題