sql >> Database >  >> NoSQL >> MongoDB

mongodb php krijgt velden unieke waarden

Op een standaard SQL DBMS zou dit worden gedaan met de volgende query:

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

op mongodb zou dit worden gedaan met behulp van de groepsfunctie, hoewel het iets gecompliceerder is:

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

Hier vraag ik de db om waarden te retourneren voor de sleutel "type" (vandaar de "true"), en voor elke waarde zal de gegeven reduceerfunctie worden gebruikt om de gevonden records te aggregeren. Hier werk ik gewoon een telling bij van hoe vaak elke record wordt weergegeven. Als u deze query uitvoert, krijgt u zoiets als dit:

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

]

U zult merken dat dit niet is besteld; zelfs de mongodb-documenten zeggen dat de gemakkelijkste manier om het te bestellen is om het aan de kant van de klant te doen.

Relevante documentatie is hier .



  1. MongoDB werkt traag onder belasting

  2. Javascript momentjs converteert UTC van string naar Date Object

  3. Hoe de Meteor MongoDB-versie op lokaal specificeren?

  4. Hoe converteer je een bestaande relationele database naar een key-value store?