使用“插入”我完全可以接受。
PHP - MongoDB 以我想要的方式插入,但更新没有按我的计划工作。
在“插入”之后没有“ip”和“time”字段的文档。
'ip' 字段工作得很好 - {'ip':'127.0.0.1'}
但不知何故,“时间”数组字段的行为很奇怪。
{'time':{'realtime':'2011-01-01 12:00:00', 'mongotime': ISODate("2011-01-01T00:00:00")}}
“时间”应该插入到文档中,应该没问题。
但是这个“时间”数组和独立的“实时”,“mongotime”都被插入到文档中。
结果,我得到
{'time':{'realtime':'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")}
我不知道为什么会这样...
这太奇怪了。
这是我的代码:
$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 或者它的行为不正确?