Простое обновление монго переопределяет весь мой документ.Обновление клиента php mongo, переопределяет весь документ
мой код:
function update($where, $data, $collection)
$newdata = array('$set' => $data);
if (isset($where['id'])) {
$mongoID = new MongoID($where['id']);
unset($where['id']);
$where['_id'] = $mongoID;
}
$collection = $this->db->$collection->update($where, $data);
// $this->db is --> new \MongoClient()->selectDB($db)
}
мои данные, как это:
{
"_id": "asdasd34234414141",
"username": "whatever",
"age": 55,
}
за $ NewData выше:
['age'=>20]
, но то, что происходит после того, как я выполняю код:
{
"_id": "asdasd34234414141",
"age": 20
}
любые идеи?
Вы уверены, что $ где ['id'] установлен? Если это не так, это означает, что вы запрашиваете все документы, применяя при этом все модификации на всех документах –
@LouisF. если он найдет _id, он будет невосприимчив к этой проблеме, и поскольку он использует $ set, это не должно происходить – Sammaye
@LouisF. плюс его код обновляется только один, он не использует multi flag – Sammaye