sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Puedo disminuir el texto en mongodb?

No tiene sentido incrementar/decrementar una cadena alfanumérica; debe separar el valor de la cadena original en partes significativas antes de pedirle a MongoDB (o al código de su aplicación) que ajuste la parte numérica.

Normalmente con permalinks también estaría aumentando los valores en lugar de disminuirlos:la intención de los enlaces permanentes es garantizar que un enlace dado siempre apunte al mismo recurso.

Parece que realmente desea implementar un patrón de secuencia, donde encuentra el siguiente valor de secuencia disponible para usar.

Por ejemplo, consulte:Crear una secuencia de incremento automático en el manual de MongoDB.

Aquí hay una versión ligeramente modificada de getNextSequence() función en la documentación que usa upsert para encontrar un documento de contador de slug existente o insertar uno nuevo. El valor devuelto es un nuevo slug único:

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

Si desea disminuir desde algún valor inicial, puede insertar un valor inicial para su secuencia y reducirlo en su lugar con $inc: { seq: -1 } .