Проблемы с MongoDB, PHP и сериализацией - PullRequest
0 голосов
/ 13 марта 2012

Я смотрю, может ли кто-нибудь пролить свет на проблему, которая у меня есть.

В моей коллекции Y есть поле ADJU, в котором хранится сериализованный PHP-массив MongoID.

Одним из примеров является поле "А: 1: {я: 0; а: 1: {s: 4: \" MBID \ "; С: 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);

Может кто-нибудь понять, почему он дает мне 0 записей, когда, как вы можете видеть, один пример определенно имеет это?

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 14 марта 2012

Ну, это не запрос:

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) скрипт для чтения ужесериализовать в монго данные, десериализовать их и сохранить снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...