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

Xóa các bản ghi trùng lặp khỏi mongodb 4.0

Bạn có thể nhóm các bản ghi trùng lặp bằng cách sử dụng đường dẫn tổng hợp:

db.theCollection.aggregate([
   {$group: {_id: {item: "$item", qty: "$qty", size: "$size", status: "$status"}}},
   {$project: {_id: 0, item: "$_id.item", qty: "$_id.qty", size: "$_id.size", status: "$_id.status"}},
   {$out: "theCollectionWithoutDuplicates"}
])

Sau khi thực thi đường ống tổng hợp, theCollectionWithoutDuplicates bộ sưu tập chứa một tài liệu cho mỗi nhóm tài liệu ban đầu được sao chép, với một _id mới - bạn có thể xác minh kết quả đầu ra, xóa bộ sưu tập gốc (db.theCollection.drop() ) và đổi tên bộ sưu tập mới (db.theCollectionWithoutDuplicates.renameCollection('theCollection') ). Thả và đổi tên có thể được kết hợp trong db.theCollectionWithoutDuplicates.renameCollection('theCollection', true) .

GIẢI THÍCH việc sử dụng đường ống tổng hợp:

  1. db.theCollection.aggregate([]) thực hiện một đường dẫn tổng hợp, nhận danh sách các giai đoạn tổng hợp sẽ được thực thi
  2. $group tài liệu nhóm giai đoạn theo các trường được chỉ định dưới dạng _id tiếp theo lĩnh vực
  3. $project sân khấu thay đổi tên trường, làm phẳng _id lồng nhau tài liệu con do $group tạo ra
  4. $out giai đoạn lưu trữ tổng hợp các tài liệu kết quả vào bộ sưu tập nhất định


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cách kiểm tra từ trình điều khiển, nếu máy chủ mongoDB đang chạy

  2. Đám mây lai so với đám mây công cộng đầy đủ - Ưu và nhược điểm

  3. Truy vấn Mongodb find ():chỉ trả về các giá trị duy nhất (không trùng lặp)

  4. MongoDB $ atan

  5. Không thể lấy dữ liệu đối tượng Yii2 được trả về dưới dạng Json