2011-08-16 115 views
0

使用'插入'我完全可以使用它。mongoDB更新無法正常工作

PHP - MongoDB插入我想要的方式,但更新不按我的計劃工作。

在「插入」沒有「ip」和「time」字段的文檔之後。

'IP' 現場工作完全正常 - { 'IP': '127.0.0.1'}

但不知何故, '時間' 陣場奇怪的行爲。

{ '時間':{ '實時': '2011-01-01 12:00:00', 'mongotime':ISODate( 「2011-01-01T00:00:00」)}}

應該在文檔中插入「時間」

,並且應該沒問題。

但是這個「時間」數組和獨立的'realtime','mongotime'被插入到文檔中。

其結果是,我越來越

{ '時間':{ '實時': '2011-01-01 12:00:00', 'mongotime':ISODate(「2011-01- 01T00:00:00「)},'realtime':'2011-01-01 12:00:00','mongotime':ISODate(」2011-01-01T00:00:00「)}

I不知道爲什麼會發生這種情況...

這太奇怪了。

這裏是我的代碼:

$query = array('username'=>"$username"); 
$realtime = date("Y-m-d H:i:s"); 
$mongotime = new Mongodate(strtotime($realtime)); 
$set_item = array('ip'=>"$IP", 'time'=> array('realtime'=>"$realtime", 
     'mongotime'=> $mongotime)); 
$db->member->update($query, array('$set' => $set_item)); 

難道我理解的MongoDB以錯誤的方式或它工作不正常?

+0

你已經使用過這個網站,知道你可以格式化代碼。請這樣做。只需編輯問題,突出顯示代碼部分,然後單擊工具欄中的代碼按鈕即可。 –

+0

我試圖但不知何故4空格和8空格縮進不起作用。 NVM。現在它工作。 – InspiredJW

回答

1

你的代碼應該沒問題。

當你開發你的代碼時,你可能會測試它幾次,並用壞修飾符文檔更新文檔。現在有垃圾。

只需用乾淨的文檔進行測試即可。