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

Làm cách nào để xóa các mục trùng lặp khỏi một mảng?

Kể từ MongoDB 2.2, bạn có thể sử dụng khung tổng hợp với $unwind , $group$project giai đoạn để đạt được điều này:

db.users.aggregate([{$unwind: '$favorites.books'},
                    {$group: {_id: '$_id',
                              books: {$addToSet: '$favorites.books'},
                              name: {$first: '$name'}}},
                    {$project: {'favorites.books': '$books', name: '$name'}}
                   ])

Lưu ý sự cần thiết của $project để đổi tên favorites trường, kể từ $group các trường tổng hợp không được lồng vào nhau.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chọn Nhóm theo số lượng và số lượng riêng biệt trong cùng một truy vấn mongodb

  2. Mongoose, Chọn một trường cụ thể với tìm

  3. Phương pháp hay nhất để duy trì một phiên mgo

  4. Cách kết nối ứng dụng mongodb với Meteor MongoDB cục bộ

  5. Truy vấn ngày với ISODate trong mongodb dường như không hoạt động