Tidak masuk akal untuk menambah/mengurangi string alfanumerik; Anda perlu memisahkan nilai string asli menjadi bagian yang bermakna sebelum meminta MongoDB (atau kode aplikasi Anda) untuk menyesuaikan bagian numerik.
Biasanya dengan permalinks Anda juga akan menambah nilai daripada mengurangi -- maksud keseluruhan dari permalink adalah untuk memastikan bahwa tautan yang diberikan selalu mengarah ke sumber daya yang sama.
Sepertinya Anda benar-benar ingin menerapkan pola urutan, di mana Anda menemukan nilai urutan berikutnya yang tersedia untuk digunakan.
Misalnya, lihat:Membuat Urutan Peningkatan Otomatis dalam manual MongoDB.
Berikut adalah versi getNextSequence()
yang sedikit dimodifikasi fungsi dalam dokumentasi yang menggunakan upsert
untuk menemukan dokumen penghitung slug yang ada atau memasukkan yang baru. Nilai yang dikembalikan adalah siput unik baru:
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
Jika Anda ingin mengurangi dari beberapa nilai awal, Anda dapat memasukkan nilai awal untuk urutan Anda dan menguranginya dengan $inc: { seq: -1 }
.