Обновление mongoDB не работает должным образом - PullRequest
0 голосов
/ 16 августа 2011

С «Вставкой» у меня все в порядке.

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")}}

"время" должно бытьвставлен в документ и должен быть в порядке.

Но оба из этого массива "time" и независимого 'realtime', 'mongotime' вставлены в документ.

В результате я 'm get

{'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 или он ведет себя неправильно?

1 Ответ

1 голос
/ 16 августа 2011

Ваш код должен быть в порядке.

Когда вы разрабатывали свой код, вы, вероятно, несколько раз тестировали его и обновляли документ неверными документами модификатора.Теперь в нем есть мусор.

Просто протестируйте его с чистым документом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...