2012-03-13 5 views
0

Im смотря, чтобы посмотреть, может ли кто-нибудь пролить свет на проблему im, которая имеет.Проблемы с MongoDB, PHP и сериализацией

В моей коллекции 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 записей, когда, как вы можете видеть, один пример определенно есть это?

Благодарим за помощь!

+0

На стороне примечания, нет никаких ошибок php или что-либо еще, и мои подозрения в использовании «s – 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 обновлял скрипт, который использовался для импорта данных из mysql для десериализации перед вставкой в ​​mongo, или написать скрипт (php) для чтения уже сериализованного кода, in-mongo, десериализуйте его и снова сохраните.

+0

Оказывается, я использовал var_dump для отладки, который не работает с итератором (MongoCollection). Когда я запускал iterator_to_array перед этим, он работал нормально. Спасибо за советы, хотя его очень ценят! – AlastairDewar

Смежные вопросы