Использование Cosmos MongoDB API find не работает в Lumen - PullRequest
0 голосов
/ 01 апреля 2020

это мой сценарий: у меня есть приложение 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 в моем коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...