Как в mongoDb получить поле по id если id не является объектом? Подскажите как можно получить поле по _id если _id не ObjectId
Если в базе сохранить _id как объект (ObjectId("11b12aa654bce41356002559")) то всё работает, но если я хочу задавать его самостоятельно то есть просто как строку ("11b12aa654bce41356002559") то такая схема ничего не находит.$product = Products::findOne(['_id' => '11b12aa654bce41356002559']);

21 Авг 2019 в 06:30
296 +1
0
Ответы
1

В MongoDB поле _id обязательно должно быть типа ObjectId для использования его в операциях запросов. Если вы хотите использовать строковое представление id, вы можете выполнить конвертацию в ObjectId при поиске записи.

В вашем случае, чтобы найти запись по _id, которое представлено в виде строки, вам нужно сначала сконвертировать строку в ObjectId, а затем выполнить запрос. Ниже приведен пример кода на PHP:

$id = '11b12aa654bce41356002559';
$objectId = new MongoDB\BSON\ObjectId($id);
$product = Products::findOne(['_id' => $objectId]);

Этот код создаст объект ObjectId из строки $id и затем выполнит поиск записи по этому _id.

Надеюсь, это поможет вам решить проблему! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир