0

誰かが私が抱えている問題に光を当てることができるかどうかを探しています。

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

フィールドの一例は、「a:1:{i:0;a:1:{s:4:\"MBID\";C:7:\"MongoId\":24:{4f2c5b9bb9a21d5010000005}}}」です。

渡すパラメーターは「4f2c5b9bb9a21d5010000005」です

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);

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

ご協力いただきありがとうございます!

4

1 に答える 1

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 で mysql からデータをインポートするために使用したスクリプトを更新して、mongo に挿入する前に逆シリアル化するか、(php) スクリプトを記述して既にシリアル化された mongo データを読み取る方がよいでしょう。 、それを逆シリアル化し、再度保存します。

于 2012-03-14T08:54:38.107 に答える