MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb php получаване на уникални стойности на полета

На стандартна SQL СУБД това ще бъде направено със следната заявка:

SELECT type, count(*) as ct FROM table GROUP BY type ORDER BY ct;

на mongodb това ще бъде направено с помощта на груповата функция, въпреки че е малко по-сложно:

db.collection.group(
           {key: { "type":true},
            reduce: function(obj,prev) { prev.count += 1; },
            initial: { count: 0 }
            });

Тук моля db да върне стойности за ключа "type" (оттук и "true") и за всяка стойност дадената функция за намаляване ще бъде използвана за агрегиране на намерените записи. Тук просто актуализирам броя на показванията на всеки запис. Ако изпълните тази заявка, ще получите нещо подобно:

[
    {
        "type" : "report",
        "count" : 5
    },
    {
        "type" : "memo",
        "count" : 15
    }
    {
        "type" : "research",
        "count" : 3
    }

]

Ще забележите, че това не е подредено; дори в документите на mongodb се казва, че най-лесният начин да го поръчате е да го направите от страна на клиента.

Съответната документация е тук .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как работи сортирането в новото разширение mongodb PECL?

  2. MongoDB - Развийте масив с помощта на агрегиране и премахнете дубликатите

  3. Команда Distinct(), използвана с skip() и limit()

  4. Как да сортирате документи въз основа на дължината на поле от масив

  5. Преобразувайте низ в число в проекцията на MongoDB