sql >> Databáze >  >> NoSQL >> MongoDB

Mohu snížit text v mongodb?

Nemá smysl zvyšovat/snižovat alfanumerický řetězec; musíte rozdělit původní hodnotu řetězce do smysluplných částí, než požádáte MongoDB (nebo kód vaší aplikace) o úpravu číselné části.

Normálně s permalinks také byste hodnoty spíše zvyšovali než snižovali – celý záměr trvalých odkazů je zajistit, aby daný odkaz vždy směřoval na stejný zdroj.

Zní to, jako byste ve skutečnosti chtěli implementovat sekvenční vzor, ​​kde najdete další dostupnou sekvenční hodnotu k použití.

Viz například:Vytvoření sekvence automatického zvyšování v příručce MongoDB.

Zde je mírně upravená verze getNextSequence() funkce v dokumentaci, která používá upsert buď najít existující dokument počítadla slimáků, nebo vložit nový. Vrácená hodnota je nový jedinečný 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

Pokud chcete snížit z nějaké počáteční hodnoty, můžete vložit počáteční hodnotu pro vaši sekvenci a místo toho ji snížit pomocí $inc: { seq: -1 } .




  1. Hledání vnořených dokumentů MongoDB

  2. mongodb.conf bind_ip =127.0.0.1 nefunguje, ale 0.0.0.0 funguje

  3. Mongodb kombinuje souhrnné dotazy

  4. Model.find není funkce v mongoose