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

21 Авг 2019 в 06:30
263 +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 Апр в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир