MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

cara memasukkan nomor peningkatan otomatis dengan koleksi luwak saya

Mengikuti tutorial MongoDB, Buat Auto- Menaikkan Bidang Urutan , Anda harus terlebih dahulu membuat counters separate yang terpisah koleksi untuk melacak urutan nomor terakhir yang digunakan. _id bidang berisi nama urutan yaitu userID bidang di koleksi pengguna dan seq bidang berisi nilai terakhir dari urutan.

Untuk memulainya, masukkan ke dalam counter collection nilai awal untuk userID :

db.counter.insert(
   {
      "_id": "userID",
      "seq": 0
   }
)

Setelah mengisi koleksi penghitung, buat skemanya di Mongoose:

var counterSchema = mongoose.Schema({
    "_id": { "type": String, "required": true },
    "seq": { "type": Number, "default": 0 }
});

var counter = mongoose.model('counter', counterSchema);

Kemudian definisikan ulang skema pengguna Anda sehingga saat Anda menyimpan model pengguna, pertama kali memanggil findByIdAndUpdate() model penghitung metode untuk secara atom menambah nilai seq dan mengembalikan nilai baru ini yang kemudian dapat digunakan sebagai userID berikutnya nilai:

var userSchema = mongoose.Schema({
    "userID": { "type": String, "required": true },
    "firstname": { "type": String },
    "lastname": { "type": String },
    // other properties ...
    }, { "collection": "user" }
);

userSchema.pre("save", function (next) {
    var doc = this;
    counter.findByIdAndUpdate(
        { "_id": "userID" }, 
        { "$inc": { "seq": 1 } }
    , function(error, counter)   {
        if(error) return next(error);
        doc.userID = counter.seq.toString();
        next();
    });
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memesan hasil yang ditetapkan secara acak di mongo

  2. Luwak findOneAndUpdate Memperbarui Beberapa Bidang

  3. Bagaimana cara mengumpulkan jumlah di MongoDB untuk mendapatkan jumlah total?

  4. ClusterControl - Semua Sorotan &Peningkatan Fitur Dari 2017

  5. Filter dan atur ulang hasil menggunakan node.js dan mongodb menurut tanggal (bulan)