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

Chỉ số tổng hợp Mongoose Duy nhất + thưa thớt

Bạn đã thực sự gần đến giải pháp, tất cả những gì bạn cần sử dụng khi tạo chỉ mục:

partialFilterExpression: { serialNr: {$exists:true} }

Đảm bảo có ít nhất phiên bản mongo 3.2

Ví dụ:

db.col.createIndex({a:1, b:1},{unique:true, partialFilterExpression: { a: {$exists:true} })
db.col.save({a:50, b:27}) //pass
db.col.save({a:50, b:27}) //fails
db.col.save({b:27}) //pass
db.col.save({b:27}) //pass
db.col.save({b:27}) //pass
db.col.save({a:50, b:27}) //fails
db.col.save({a:50}) //pass
db.col.save({a:50}) //fails

Tái bút:Có lẽ bạn có thể làm một chút "hack" và sử dụng cái này:partialFilterExpression: { serialNr: {$exists:true}, serialNr: {$gte:0} }

Tôi đã thử sử dụng $ ne, nhưng nó khiến tôi gặp lỗi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. truy vấn cập nhật mongo đã cho lỗi

  2. Tự động tạo chỉ mục với mongoid

  3. Chuyển đổi kiểu dữ liệu trong MongoDB

  4. MomentJS không chuyển đổi ngày chính xác

  5. Lược đồ tự tham chiếu Mongoose không tạo ObjectId cho tất cả các tài liệu con