2014-02-10 3 views
0

이것은 mongodb에 삽입 한 객체입니다.PHP MongoDB - 배열 객체가 아닌 배열로 유지

{ 
    '_array': [1,2,3], 
    '_ass_array': [{'num': 1, 'name': 'One'}], 
    '_obj': {'key': 'val'} 
} 

터미널에서 쿼리하면 삽입 한 것과 동일한 결과를 얻을 수 있습니다. 그러나 PHP의 MongoCollection::findOne()/ MongoCollection::find()을 통해 쿼리하는 동안 다음 형식이 나타납니다.

{ 
    '_array': { 0: 1, 1: 2, 2: 3}, 
    '_ass_array': { 
     0: {'num': 1, 'name': 'One'} 
    }, 
    '_obj': {'key': 'val'} 
} 

개체로 배열 및 개체로 배열을 가져올 수있는 방법이 있습니까? 필요한 경우 전체 코드로 질문을 업데이트 할 수 있습니다.

답변

0

동일한 데이터에서 나에게 적합합니다. 게시물의 JSON 구문 이후로 직렬화에서 다른 것을 수행하고 있는지 궁금합니다. 예상대로 $data은 PHP 배열입니다.

<?php 

$dbhost = 'localhost'; 
$dbname = 'test'; 

$m = new Mongo("mongodb://$dbhost"); 
$db = $m->$dbname; 

$col = $db->data; 

$data = $col->findOne(); 

echo json_encode($data) . "\n"; 

?> 

여기에 다양한 사람들이 MongoDB 문서에서 그 형식을 가지고 있기 때문에 결과에 어떻게 도달했는지 조금 흥미가 있습니다.

+0

+1 감사합니다. 내가 누락 json_encode() – Garfield

+0

@codelover이 질문의 컨텍스트에서 어떻게 보이지 않지만 당신의'Content-Type'이 "application/json"이되어서는 안된다. 또한 ** ** else **일지도 모르는 상황에서이 문제를 푸시하는 것처럼 보이기 때문에 직렬화 문제가 발생합니다. 그리고 아마도 그것은 당신이 사용하고있는 것과 관련된 또 다른 질문입니다. –

+0

감사합니다. 다른 모듈에서 문제가 발생했습니다. OBJECT로 변환해야하는 곳에서 JSON_FORCE_OBJECT를 사용하여 문제가 발생했습니다. 어느 것이 MongoDB와는 완전히 무관합니다. (아마이 질문을 삭제해야합니다. – Garfield

관련 문제