sql >> Database >  >> NoSQL >> MongoDB

Kan ik tekst in mongodb verlagen?

Het heeft geen zin om een ​​alfanumerieke string te verhogen/verlagen; u moet de oorspronkelijke tekenreekswaarde in betekenisvolle delen scheiden voordat u MongoDB (of uw applicatiecode) vraagt ​​om het numerieke gedeelte aan te passen.

Normaal gesproken met permalinks je zou ook waarden verhogen in plaats van verlagen -- de hele bedoeling van permalinks is om ervoor te zorgen dat een bepaalde link altijd naar dezelfde bron verwijst.

Het klinkt alsof je eigenlijk een reekspatroon wilt implementeren, waar je de volgende beschikbare reekswaarde vindt om te gebruiken.

Zie bijvoorbeeld:Een automatisch oplopende reeks maken in de MongoDB-handleiding.

Hier is een licht gewijzigde versie van de getNextSequence() functie in de documentatie die gebruikmaakt van upsert om een ​​bestaand slakkentellerdocument te vinden of een nieuw document in te voegen. De retourwaarde is een nieuwe unieke 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

Als je een startwaarde wilt verlagen, kun je een startwaarde voor je reeks invoegen en die in plaats daarvan verlagen met $inc: { seq: -1 } .




  1. array met unieke waarden voor alle documenten van één verzameling

  2. Herhaal grote verzamelingen in MongoDB via spring-data

  3. 5 manieren om de seconden van een date te krijgen in MongoDB

  4. redis vs hazelcast