Как в mongoDb получить поле по id если id не является объектом? Подскажите как можно получить поле по _id если _id не ObjectId Если в базе сохранить _id как объект (ObjectId("11b12aa654bce41356002559")) то всё работает, но если я хочу задавать его самостоятельно то есть просто как строку ("11b12aa654bce41356002559") то такая схема ничего не находит.$product = Products::findOne(['_id' => '11b12aa654bce41356002559']);
В MongoDB поле _id обязательно должно быть типа ObjectId для использования его в операциях запросов. Если вы хотите использовать строковое представление id, вы можете выполнить конвертацию в ObjectId при поиске записи.
В вашем случае, чтобы найти запись по _id, которое представлено в виде строки, вам нужно сначала сконвертировать строку в ObjectId, а затем выполнить запрос. Ниже приведен пример кода на PHP:
В MongoDB поле _id обязательно должно быть типа ObjectId для использования его в операциях запросов. Если вы хотите использовать строковое представление id, вы можете выполнить конвертацию в ObjectId при поиске записи.
В вашем случае, чтобы найти запись по _id, которое представлено в виде строки, вам нужно сначала сконвертировать строку в ObjectId, а затем выполнить запрос. Ниже приведен пример кода на PHP:
$id = '11b12aa654bce41356002559';$objectId = new MongoDB\BSON\ObjectId($id);
$product = Products::findOne(['_id' => $objectId]);
Этот код создаст объект ObjectId из строки $id и затем выполнит поиск записи по этому _id.
Надеюсь, это поможет вам решить проблему! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.