MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

cách chèn số tự động tăng với bộ sưu tập mongoose của tôi

Làm theo hướng dẫn MongoDB, Tạo Auto- Trường trình tự tăng dần , trước tiên bạn cần tạo một counters riêng biệt bộ sưu tập để theo dõi dãy số cuối cùng được sử dụng. _id trường chứa tên trình tự, tức là userID trường trong bộ sưu tập người dùng và seq trường chứa giá trị cuối cùng của chuỗi.

Để bắt đầu, hãy chèn vào bộ sưu tập giá trị ban đầu cho userID :

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

Sau khi điền bộ sưu tập bộ đếm, hãy tạo giản đồ của nó trong Mongoose:

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

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

Sau đó, xác định lại giản đồ người dùng của bạn để khi bạn lưu mô hình người dùng, lần đầu tiên nó gọi findByIdAndUpdate() của mô hình bộ đếm để tăng nguyên tử giá trị seq và trả về giá trị mới này sau đó có thể được sử dụng làm userID tiếp theo giá trị:

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. Nâng cấp lên Ubuntu 15.04 từ 14.10 làm hỏng mongo - làm thế nào để khắc phục?

  2. Mongoose find (), làm thế nào để truy cập các tài liệu kết quả?

  3. MongoDB Chuyển đổi chuỗi thành mảng

  4. Golang / MGO - hoảng sợ:không có máy chủ nào có thể truy cập

  5. Chèn hiệu suất của node-mongodb-native