2014-02-10 88 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」,因爲它現在已經是標準了。它也似乎是你推動這個,但可能會導致你的序列化困境。也許這是另一個與你正在使用的問題有關的問題。 –

+0

謝謝。在其他模塊中有一個問題,它強制轉換爲OBJECT,它使用JSON_FORCE_OBJECT,因此我得到了這個問題。這是完全不相關的MongoDB :(可能我應該刪除這個問題。 – Garfield

相關問題