sql >> Databasteknik >  >> NoSQL >> MongoDB

Kan jag minska text i mongodb?

Det är inte meningsfullt att öka/minska en alfanumerisk sträng; du måste separera det ursprungliga strängvärdet i meningsfulla delar innan du ber MongoDB (eller din applikationskod) att justera den numeriska delen.

Normalt med permalänkar du skulle också öka värden istället för att minska -- hela avsikten med permalänkar är att säkerställa att en given länk alltid pekar på samma resurs.

Det låter som att du faktiskt vill implementera ett sekvensmönster, där du hittar nästa tillgängliga sekvensvärde att använda.

Se till exempel:Skapa en automatisk ökningssekvens i MongoDB-manualen.

Här är en något modifierad version av getNextSequence() funktion i dokumentationen som använder upsert för att antingen hitta ett befintligt snigelräknaredokument eller infoga ett nytt. Returvärdet är 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

Om du vill minska från något startvärde kan du infoga ett startvärde för din sekvens och minska det istället med $inc: { seq: -1 } .




  1. mongod-skalet startar inte, data/db existerar inte

  2. Ogiltig ns vid anslutning till mongodb-server

  3. Regex med OR i Java - mongoDB

  4. Exempel på anpassad händelseavlyssnare i Grails-dokumentationen