Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Hiển thị giá trị với $addToSet trong MongoDB không trùng lặp

Toán tử $addToSet đảm bảo không thêm phần tử trùng lặp vào mảng. Tạo collection:

> db.getDistinctDemo.insertOne({ "Values": [100, 200] });
{ "acknowledged": true, "insertedId": ObjectId("5cef69f9ef71edecf6a1f69d") }
> db.getDistinctDemo.insertOne({ "Values": [300, 100] });
{ "acknowledged": true, "insertedId": ObjectId("5cef6a07ef71edecf6a1f69e") }

Hiển thị document:

> db.getDistinctDemo.find().pretty();

Kết quả:

{
  "_id": ObjectId("5cef69f9ef71edecf6a1f69d"),
  "Values": [ 100, 200 ]
}
{
  "_id": ObjectId("5cef6a07ef71edecf6a1f69e"),
  "Values": [ 300, 100 ]
}

Truy vấn aggregate dùng $addToSet để gom các giá trị duy nhất từ mảng Values:

> db.getDistinctDemo.aggregate([
  { "$group": { "_id": 0, "MyValues": { "$addToSet": "$Values" } } }
]);

Kết quả (các mảng con được giữ nguyên, không gộp phẳng):

{ "_id": 0, "MyValues": [ [ 300, 100 ], [ 100, 200 ] ] }