MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Posso diminuir o texto no mongodb?


Não faz sentido incrementar/diminuir uma string alfanumérica; você precisa separar o valor da string original em partes significativas antes de pedir ao MongoDB (ou ao código do seu aplicativo) para ajustar a parte numérica.

Normalmente com links permanentes você também estaria incrementando valores em vez de decrementando - toda a intenção dos permalinks é garantir que um determinado link esteja sempre apontando para o mesmo recurso.

Parece que você realmente deseja implementar um padrão de sequência, onde você encontra o próximo valor de sequência disponível a ser usado.

Por exemplo, consulte:Criar uma sequência de incremento automático no manual do MongoDB.

Aqui está uma versão ligeiramente modificada do getNextSequence() função na documentação que usa upsert para localizar um documento de contador de slug existente ou inserir um novo. O valor de retorno é um novo slug exclusivo:
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

Se você quiser diminuir de algum valor inicial, poderá inserir um valor inicial para sua sequência e reduzi-lo com $inc: { seq: -1 } .