2011-05-26 42 views
2
$update = $col->update(array('_id' => 'test'), array('$push' => array('friends' => 1)), array('safe' => true, 'upsert' => true)); 
$test = $col->findOne(array('_id' => 'test')); 
debug(compact('update', 'test')); 

不按預期工作。MongoDB:我如何插入一個javascript數組與PHP(而不是一個對象)?

我獲得的(通過RockMongo檢查):

{ 
    "_id": "test", 
    "friends": { 
    "0": 1 
    } 
} 

我想/希望有這樣的:

{ 
    "_id": "test", 
    "friends": [ 
    1 
    ] 
} 

任何想法? 謝謝!

+0

怎麼樣'陣列( '朋友'=>陣列(1))' ? – Nick 2011-05-26 15:22:57

回答

6

我花了大量的時間回到故障排除爲什麼我的數據插入錯誤只是爲了找出RockMongo沒有顯示數據正確。

它相當重要,因爲RockMongo並不真正將數據顯示爲Mongo文檔,而是將其作爲PHP。

我發現這對情侶Firefox和Chrome之間的不同數據類型的不同,出於某種原因...陣列,日期,MongoID的

但最終,我的命令做了發現()正確。

我不相信RockMongo會告訴你什麼,請看下面的例子。

也有你需要使用「安全」的原因嗎?

實際數據

enter image description here

RockMongo說什麼(錯誤)

enter image description here

+0

應該有這個想法!只是用於調試目的(等待退貨等)。謝謝。 – Olivier 2011-05-26 20:27:29

+0

另外* @ olouv *,你想知道一些瘋狂的PHP和數組與JSON對象的瘋狂。我從我做過的演示中看到一個例子,https://github.com/gatesvp/php_get_started/blob/master/step10.php – 2011-05-27 17:10:35

相關問題