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

Xóa nhiều tham chiếu đến nhiều tham chiếu trong Mongoose

Bạn đang đi đúng hướng để sử dụng 'remove' phần mềm trung gian cho việc này. Trong chức năng phần mềm trung gian, this là phiên bản nhóm đang bị xóa và bạn có thể truy cập các mô hình khác thông qua model của nó phương pháp. Vì vậy, bạn có thể làm điều gì đó như:

GroupSchema.pre('remove', function(next){
    this.model('User').update(
        {_id: {$in: this.users}}, 
        {$pull: {groups: this._id}}, 
        {multi: true},
        next
    );
});

Hoặc nếu bạn muốn hỗ trợ các trường hợp users trường trong trường hợp nhóm của bạn có thể không hoàn chỉnh, bạn có thể làm:

GroupSchema.pre('remove', function(next){
    this.model('User').update(
        {groups: this._id}, 
        {$pull: {groups: this._id}}, 
        {multi: true},
        next
    );
});

Nhưng như WiredPrairie lưu ý, đối với tùy chọn này, bạn muốn có chỉ mục trên groups để có hiệu suất tốt.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB đối lập với $ addToSet

  2. Mật khẩu MongoDB với @ trong đó

  3. Pymongo tìm thấy giá trị trong các tài liệu nhỏ

  4. Danh sách kiểm tra bảo mật cho việc triển khai sản xuất MongoDB

  5. Tạo truy vấn động với Tiêu chí MongoDB Dữ liệu Mùa xuân