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

Loại bỏ các tài liệu trùng lặp dựa trên trường

Đây là điều mà chúng tôi thực sự có thể làm bằng cách sử dụng khung tổng hợp và không cần xử lý phía máy khách.

MongoDB 3.4

db.collection.aggregate(
    [ 
        { "$sort": { "_id": 1 } }, 
        { "$group": { 
            "_id": "$asin", 
            "doc": { "$first": "$$ROOT" } 
        }}, 
        { "$replaceRoot": { "newRoot": "$doc" } },
        { "$out": "collection" }
    ]

)

Phiên bản MongoDB <=3.2:

db.collection.aggregate(
    [ 
        { "$sort": { "_id": 1 } }, 
        { "$group": { 
            "_id": "$asin", 
            "doc": { "$first": "$$ROOT" } 
        }}, 
        { "$project": { 
            "asin": "$doc.asin", 
            "url": "$doc.url", 
            "image": "$doc.image", 
            "salesRank": "$doc.salesRank", 
            "title": "$doc.salesRank", 
            "brand": "$doc.brand", 
            "favourite": "$doc.favourite", 
            "createdAt": "$doc.createdAt", 
            "updatedAt": "$doc.updatedAt" 
        }},
        { "$out": "collection" }
    ]
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn Mongoose trong đó giá trị không rỗng

  2. Mongoose kết nối với tập hợp bản sao

  3. Lưu trữ tệp trong Mongo's GridFS bằng ExpressJS sau khi tải lên

  4. Lỗi khi tải tệp cấu hình YAML trong Rails

  5. Tại sao _id với ObjectID được thêm vào khi sử dụng $ push của MongoDB để thêm đối tượng mới vào một mảng?