使用'Insert'我完全没问题。
PHP - MongoDB按照我想要的方式插入,但更新不能像我计划的那样工作。
在'插入'后没有“ip”和“time”字段的文件。
'ip'字段完全正常 - {'ip':'127.0.0.1'}
但不知怎的'time'数组字段表现得很奇怪。
{'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或者它是否表现不正确?
答案 0 :(得分:1)
您的代码应该没问题。
在开发代码时,您可能会对其进行多次测试,并使用错误的修改器文档更新文档。现在里面有垃圾。
只需用干净的文档进行测试即可。