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

Menghapus banyak ke banyak referensi di Mongoose

Anda berada di jalur yang benar untuk menggunakan 'remove' perangkat tengah untuk ini. Dalam fungsi middleware, this apakah instance grup sedang dihapus dan Anda dapat mengakses model lain melalui model metode. Jadi, Anda dapat melakukan sesuatu seperti:

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

Atau jika Anda ingin mendukung kasus di mana users bidang dalam instance grup Anda mungkin tidak lengkap yang dapat Anda lakukan:

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

Tetapi seperti yang dicatat oleh WiredPrairie, untuk opsi ini Anda menginginkan indeks pada groups untuk kinerja yang baik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kueri kecocokan agregat Mongodb dengan prioritas pada kecocokan penuh

  2. Temukan dokumen yang berisi bidang tertentu untuk sub-objek MongoDb dan Node.js

  3. ODM luwak:NumberInt tidak ditentukan

  4. mongodb bagaimana cara meminta string jumlah?

  5. MongoDB menetapkan batas ke $inc