Intereting Posts
PHP Postgres PDO драйвер не поддерживает подготовленный оператор? Ошибка авторизации входа в систему larvel 4 Ошибка PHP-памяти при изменении размера PNG-изображения Как я могу полностью удалить PHPUnit с помощью установщика PEAR? почему база данных mysql деактивирована в статусе xampp, но зеленая на панели управления панели управления xampp? Как передать адрес электронной почты в webhook от mailchimp Функция base_url () не будет работать на страницах ошибок. Даже после автозагрузки Php pdo foreach Ошибка Sagepay 5068: метод шифрования не поддерживается (обновить с 2.22 до 3.00) jquery autocomplete plugin – fetch works – fetchAll не делает Как напечатать целое число в форме треугольника Doctrine: Как удалить часть предложения where из выбранного запроса внутри прослушивателя (preDqlSelect)? Есть ли простой способ обнаружить пересечения сегментов линии? Сравнение JSON после цикла foreach как я могу загрузить видео и сохранить его в папку в codeigniter?

Как конвертировать запрос агрегации MongoDB в Laravel MongoDB от jenssegers

У меня есть коллекция MongoDB, называемая изменениями, которая содержит следующие данные

{ "date" : ISODate("2014-06-09T00:00:00.000Z"), "field" : "ip", "from" : "157.11.209.123", "to" : "107.21.109.254" } { "date" : ISODate("2014-05-15T00:00:00.000Z"), "field" : "ip", "from" : "107.21.109.254", "to" : "157.11.209.123" } { "date" : ISODate("2014-06-09T00:00:00.000Z"), "field" : "registration", "from" : "Old service", "to" : "Some new service" } 

Затем я хочу сделать типичный SQL-запрос, который учитывает вхождения и группирует его по field . Итак, я создал запрос в MongoDB

 db.changes.group({ "key": { "field": true }, "initial": { "count": 0, }, "reduce": function(obj, prev) { prev.count++; }, }); 

Он отлично работает, но как я могу преобразовать его в работу с Laravel 4 ? Я использую jenssegers / laravelmongodb для связи с сервером mongo.

Кроме того, у меня больше условий в запросе, который я удалил, чтобы сделать мой вопрос более ясным, поэтому я ищу решение для преобразования именно этого запроса в laravel, а не другие возможные решения :).

Related of "Как конвертировать запрос агрегации MongoDB в Laravel MongoDB от jenssegers"

Вы оба лучше используете методы структуры агрегации, а также погружаетесь в необработанный объект коллекции MongoDB, предоставленный из основного драйвера, чтобы сделать это. Это гораздо лучший вариант, который пытается перевести синтаксис:

 // Returns the original Mongo Result $result = DB::collection('changes')->raw(function($collection) { return $collection->aggregate(array( array( '$group' => array( '_id' => '$field', 'count' => array( '$sum' => 1 ) ) ) )); }); 

Результат немного отличается от результата метода, такого как .group() но он использует собственный код на сервере MongoDB и не полагается на интерпретацию JavaScript, как это .group() метод .group() , будучи действительно оберткой вокруг mapReduce.

Конечный результат намного быстрее, а также, как правило, более эффективный, чем вы выйдете из интерфейса native framework.

Так что используйте собственный способ MongoDB для лучшей производительности.