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

mongoose unique:true không hoạt động

Điều này xảy ra vì bạn đang lưu tài liệu trùng lặp trước mongoose đã hoàn thành việc tạo chỉ mục. Mongoose tạo các chỉ mục khi đang di chuyển, sau khi ứng dụng của bạn đã khởi động.

Vì vậy, để đảm bảo rằng tài liệu của bạn sẽ chỉ được lưu sau khi các chỉ mục được tạo, bạn phải lắng nghe index sự kiện của mô hình của bạn. Ví dụ:

Model.on('index', function (error) {
  console.log(jp);
  jp.save(function(err){
    console.log(err);
    var jp2 = new Model({ phone: "123456"});
    console.log(jp2);
    jp2.save(function(err){
      console.log(err);
      process.exit();
    });
  })
});

Bây giờ, khi bạn cố gắng lưu tài liệu thứ hai (tài liệu được sao chép), MongoDB của bạn sẽ xuất hiện lỗi do save của bạn lệnh gọi sẽ chỉ chạy sau khi các chỉ mục được tạo.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không thể xác thực thành mongo, xác thực không thành công

  2. Golang mgo nhận các vật thể rỗng

  3. Cách truy vấn bộ sưu tập tài liệu con bằng MongoDB và trình điều khiển C #

  4. Làm cách nào để tạo DB cho vùng chứa MongoDB khi khởi động?

  5. MongoDB - nhận tài liệu có thuộc tính tối đa cho mỗi nhóm trong một bộ sưu tập