sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb php får felter unikke værdier

På en standard SQL DBMS ville dette blive gjort med følgende forespørgsel:

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

på mongodb ville dette blive gjort ved hjælp af gruppefunktionen, selvom det er lidt mere kompliceret:

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

Her beder jeg db'en om at returnere værdier for nøglen "type" (deraf den "sande"), og for hver værdi vil den givne reduktionsfunktion blive brugt til at aggregere de fundne poster. Her opdaterer jeg lige en optælling af, hvor mange gange hver post vises. Hvis du kører denne forespørgsel, får du noget som dette:

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

]

Du vil bemærke, at dette ikke er bestilt; selv mongodb-dokumenterne siger, at den nemmeste måde at bestille det på er at gøre det på klientsiden.

Relevant dokumentation er her .



  1. MongoDB - Svarende til LEFT JOIN, hvor en samling ikke findes

  2. Håndtering af Mongoose-valideringsfejl – hvor og hvordan?

  3. Mongo med java - find forespørgsel med batchstørrelse

  4. mongoDB præfiks jokertegn:fuldtekst-søgning ($text) find del med søgestreng