Ok ce problème me rend fou, je pensais que _id devait être ObjectID alors que la première fois qu'il l'insère correctement quand j'essaye de le mettre à jour en utilisant le _id cela ne fonctionne pas.mongoDB ne me permet pas de mettre à jour
ici est mon code
//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";
}
}
i ont essayé de faire le followinf
if($this->data['_id'] == NULL || $this->data['_id'] == "")
{
$this->data['_id'] = new MongoId();
}
else
{
$this->data['_id'] = ObjectID($this->data['_id']);
}
mais qui ne semble pas aider.
Ce qui se passe est-il insère la première fois correctement ObjectID (idnumber) puis quand il va mettre à jour est retire ObjectId() et insère une nouvelle piste avec le même idnumber comme avant
il semble comme « IDnumber »
Quelle est la sortie de 'print_r ($ e)'? –
il met à jour mais il insère une nouvelle ligne de mongo – RussellHarrower