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

Cách hạn chế xóa trong MongoDB cho bộ sưu tập mối quan hệ

Chúng tôi có thể thực hiện việc này bằng cách sử dụng $ nin

hãy để chúng tôi có bộ sưu tập Công ty với 3 bản ghi

db.companies.find();

{"_id":1, "name":"ABC Pvt Ltd", "Address":"Chennai, India"}
{"_id":2, "name":"XYZ Pvt Ltd", "Address":"Mumbai, India"}
{"_id":3, "name":"LMN Pvt Ltd", "Address":"Delhi, India"}

Hãy để chúng tôi có bộ sưu tập nhân viên với 3 thuộc tính recordcompany trong bộ sưu tập nhân viên đề cập đến id tài liệu của bộ sưu tập công ty, để kiểm tra, chúng tôi có nhân viên cho công ty 1 và 2.

db.employees.find();

{"_id":1, "firstname":"X", "lastname":"Y", "company":1}
{"_id":2, "firstname":"A", "lastname":"B", "company":1}
{"_id":2, "firstname":"Z", "lastname":"A", "company":2}

Trước khi loại bỏ các công ty không có nhân viên nào, trước tiên chúng ta cần tìm các Công ty có nhân viên. Để tránh nhiều mục nhập, chúng tôi sử dụng khác biệt

db.employees.distinct("company")
[ 1, 2 ]

bây giờ chúng tôi đã sử dụng $ nin với các công ty riêng biệt có nhân viên để xóa các công ty không có nhân viên

db.companies.remove({"_id":{$nin : db.employees.distinct("company")}});

Bây giờ nếu chúng tôi thực hiện truy vấn tìm kiếm trên bộ sưu tập công ty, chúng tôi sẽ chỉ nhận được hai bản ghi.

db.companies.find();
{ "_id" : 1, "name" : "ABC Pvt Ltd", "Address" : "Chennai, India" }
{ "_id" : 2, "name" : "XYZ Pvt Ltd", "Address" : "Mumbai, India" }

công ty 3 bị xóa vì không có nhân viên

Hy vọng nó sẽ giúp!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm tròn đến 2 chữ số thập phân trong mongodb

  2. Cách bảo mật MongoDB bằng tên người dùng và mật khẩu

  3. Phương pháp tiếp cận được khuyến nghị đối với cơ sở dữ liệu nhiều người thuê trong MongoDB là gì?

  4. Khoảng cách sai trong phương pháp geonear với Doctrine MongoDB ODM

  5. Cập nhật bằng AddToSet không cập nhật giá trị null với MongoDB C #