С «Insert» меня все устраивает.
PHP - MongoDB вставляет так, как я хотел, но обновление не работает, как я планировал.
Сразу после «Вставить» документ, в котором нет полей «ip» и «время».
Поле 'ip' работает нормально - {'ip':'127.0.0.1'}
но почему-то поле массива "время" ведет себя странно.
{'time':{'realtime':'2011-01-01 12:00:00', 'mongotime': ISODate("2011-01-01T00:00:00")}}
«время» должно быть вставлено в документ и должно быть в порядке.
Но как этот массив «время», так и независимый «в реальном времени», «монготайм» вставляются в документ.
В результате я получаю
{'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 или он ведет себя неправильно?