Получить данные из коллекции Mon go, используя совокупность laravel - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть база данных mon go, которая будет динамически создавать коллекции и вставлять в нее. Я пытаюсь извлечь данные из одной коллекции, используя этот код

$data = DB::collection('HW101950054393') -> raw(function($collection)use ($_id)
{

return $collection->aggregate([
    [ '$match'=> ['_id'=>NEW ObjectId("5e411a0893ded505cc25a8cb") ] ],
    [
        '$replaceRoot'=> [
            'newRoot'=> [
                '$arrayToObject'=> [
                    '$filter'=> [
                        'input'=> [ '$objectToArray'=>'$$ROOT' ],
                        'cond'=> [
                            '$and'=> [
                                [ '$ne'=> [ '$$this.v', "" ] ],
                                [ '$ne'=> [ '$$this.k', "msg" ] ],
                                [ '$ne'=> [ '$$this.v', 0 ] ]
                            ]
                        ]
                    ]
                ]
            ]
        ]
    ]
]);
 });

, но этот запрос вернул ноль, даже если я уверен, что _id находится в коллекции

HW101950054393

но когда я пытаюсь использовать класс Collection, если я определил ранее, как этот код

$data = Logss::raw(function($collection)use ($_id)
{

return $collection->aggregate([
    [ '$match'=> ['_id'=>NEW ObjectId("$_id") ] ],
    [
        '$replaceRoot'=> [
            'newRoot'=> [
                '$arrayToObject'=> [
                    '$filter'=> [
                        'input'=> [ '$objectToArray'=>'$$ROOT' ],
                        'cond'=> [
                            '$and'=> [
                                [ '$ne'=> [ '$$this.v', "" ] ],
                                [ '$ne'=> [ '$$this.k', "msg" ] ],
                                [ '$ne'=> [ '$$this.v', 0 ] ]
                            ]
                        ]
                    ]
                ]
            ]
        ]
    ]
]);
  }); 

it возвращает данные без проблем, но второй способ не работает для меня, так как моя система будет создавать коллекции динамически, и мне нужно автоматически извлекать данные из коллекций без определения класса, так как я могу это сделать

...