MongoDB (PHPLib) ObjectID изменяется после upsert

У меня возникла проблема с изменением идентификатора MongoDB после отправки документа.

public function upsert(User $user) {
$userMongo = new UserMongo($user);

if(!$userMongo->getUuid()) {
$userMongo->setUuid(new ObjectID);
$this->collection->insertOne($userMongo);

} else {
$userMongo->setUuid(new ObjectID($userMongo->getUuid()));
$this->collection->updateOne(["_id" => $userMongo->getUuid()], ["\$set" => $userMongo]);
}

$userMongo->setUuid($userMongo->getUuid()->__toString());
return $userMongo;
}

Это должно создать новый документ из объекта php с вновь созданным objectID и вернуть объект php с созданным ObjectID. Однако это возвращает ObjectID A (т. Е. «5986c0c8e13823329a682c81») и сохраняет его как ObjectID B (т. Е. «5986c0c8e13823329a682c82»). Сохраненный ObjectID и возвращенный ObjectID немного отличаются (последняя цифра).

Почему я получаю разные ObjectID и как я могу получить ObjectID недавно созданного документа из upsert?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]