это мой сценарий: у меня есть приложение Lumen 6, и мне нужно работать с базой данных MongoDB. Этот MongoDB был создан с использованием Azure API-интерфейса Cosmos DB .
Это один из моих документов в коллекции транспортных тележек
{
"_id" : ObjectId("5e8471e09855615d4e593952"),
"name" : "test",
"related_objects" : {"key":"value"}
}
На Lumen, чтобы выполнить мою работу проще, я пытаюсь использовать Laravel Mon go DB Library .
Это мой класс:
<?php
namespace App\Models;
use Jenssegers\Mongodb\Eloquent\Model;
class ShoppingCart extends Model
{
protected $connection = 'mongodb';
protected static $unguarded = true;
}
Когда я делаю вставку или обновление все работает, но когда я пытаюсь найти объект, результаты не отображаются. Я пробовал:
ShoppingCart::find(new ObjectId('5e8471e09855615d4e593952'))); //null
ShoppingCart::find("5e8471e09855615d4e593952")); //null
Запрос, который я получаю с помощью \ DB :: getQueryLog (), в обоих случаях:
shopping_carts.find({"_id":"5e8471e09855615d4e593952"},{"limit":1,"typeMap":{"root":"array","document":"array"}})
Я пробовал в mongodb оболочка, но это тоже не работает. Но, используя следующий, он работает:
db.shopping_carts.find({"_id":ObjectId("5e8471e09855615d4e593952")})
Как мне добиться "оборачивания" ObjectId в моем коде?