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

Kan jeg formindske tekst i mongodb?

Det giver ikke mening at øge/dekrementere en alfanumerisk streng; du skal adskille den oprindelige strengværdi i meningsfulde dele, før du beder MongoDB (eller din applikationskode) om at justere den numeriske del.

Normalt med permalinks du ville også øge værdier i stedet for at reducere - hele hensigten med permalinks er at sikre, at et givet link altid peger på den samme ressource.

Det lyder som om du rent faktisk vil implementere et sekvensmønster, hvor du finder den næste tilgængelige sekvensværdi, du skal bruge.

Se f.eks.:Opret en automatisk stigningssekvens i MongoDB-manualen.

Her er en let ændret version af getNextSequence() funktion i dokumentationen, der bruger upsert for enten at finde et eksisterende snegletællerdokument eller indsætte et nyt. Returværdien er en ny unik slug:

function getNextSequence(name) {
   var ret = db.counters.findAndModify(
      {
        query: { _id: name },
        update: { $inc: { seq: 1 } },
        upsert: true,
        new: true,
      }
   );

    // Return the new slug (eg: "example_1")
    return name + '_' + ret.seq;
}

> getNextSequence("example")
example_1
> getNextSequence("example")
example_2
> getNextSequence("example")
example_3

Hvis du ønsker at reducere fra en startværdi, kan du indsætte en startværdi for din sekvens og reducere den i stedet med $inc: { seq: -1 } .




  1. Azure Redis Cache max forbindelser nået

  2. Sådan grupperes dokumenter med specifikt felt i aggregering af mongodb

  3. MongoDB søg efter hver diktat på listen i samlingen

  4. Svarende til mongo's out:reducer mulighed i hadoop