Хорошо, эта проблема сводит меня с ума, я думал, что _id должен был быть ObjectID, хотя при первой вставке он делает это правильно, когда я пытаюсь обновить его с помощью _id, он не работает.
вот мой код
//Save Data
function savedata($data){
$collection = $this->db->retail_logs;
$this->data = $data;
if($this->data['_id'] == NULL || $this->data['_id'] == "")
{
$this->data['_id'] = new MongoId();
}
else
{
$this->data['_id'] = ObjectID($this->data['_id']);
}
try {
$collection->update(
array("_id"=>$this->data['_id']),
$this->data, // new lead document to insert
array("upsert" => true, "safe" => true)
);
print $this->data['_id'];
} catch (Exception $e) {
print "we are not able to update";
}
}
я пытался сделать следующее
if($this->data['_id'] == NULL || $this->data['_id'] == "")
{
$this->data['_id'] = new MongoId();
}
else
{
$this->data['_id'] = ObjectID($this->data['_id']);
}
но это, кажется, не помогает.
Что происходит, так это то, что он в первый раз правильно вставляет ObjectID (idnumber), затем, когда он переходит к обновлению, удаляет ObjectID() и вставляет новый вывод с тем же идентификатором, что и раньше.
так это выглядит как "ИДЕНТИФИКАЦИОННЫЙ НОМЕР"
print_r($e)
? - person Michael Robinson   schedule 26.07.2012