2011-08-16 24 views
0

'Insert'を使っても大丈夫です。mongoDBのアップデートが正しく動作しません。

PHP - MongoDBの挿入方法は、私が計画していたものの、更新したくない方法があります。

"ip"と "time"フィールドを持たない文書を挿入した直後。

のIP 'フィールドは完全に正常に動作します - { 'IP': '127.0.0.1'}

何とか '時間' の配列フィールドが妙に動作します。

{ '時間' { 'リアルタイム': '2011-01-01午前12時○○分○○秒'、 'mongotime':ISODate( "2011-01-01T00:00:00")}}

「時間」は文書に挿入する必要があり、大丈夫です。

しかし、この「時間」配列と独立した「リアルタイム」の両方、「mongotime」がドキュメントに挿入されます。

その結果、私は

{ '時間' 取得しています:{ 'リアルタイム': '2011-01-01午前12時00分00秒'、 'mongotime':ISODate(「2011-01-を01:01:00:00 ")}、 'realtime': '2011年1月1日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

あなたのコードはOKです。

あなたのコードを開発したので、それを数回試して、恐れ入りました。今そこにはゴミがあります。

クリーンなドキュメントでテストしてください。