Computer >> Máy Tính >  >> Lập trình >> MongoDB

Kết hợp các giá trị từ các thuộc tính khác nhau thành một mảng duy nhất với tập hợp MongoDB

Để kết hợp các giá trị có nghĩa là hợp nhất chúng. Để hợp nhất chúng thành một mảng, hãy sử dụng $ project trong MongoDB.

Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo244.insertOne({"Value1":10,"Value2":20});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4582e31627c0c63e7dba63")
}
> db.demo244.insertOne({"Value1":20,"Value2":30});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4582f11627c0c63e7dba64")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo244.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e4582e31627c0c63e7dba63"), "Value1" : 10, "Value2" : 20 }
{ "_id" : ObjectId("5e4582f11627c0c63e7dba64"), "Value1" : 20, "Value2" : 30 }

Sau đây là truy vấn để kết hợp các giá trị từ các thuộc tính khác nhau thành một mảng duy nhất với tập hợp MongoDB -

> db.demo244.aggregate([
...
...   { "$group": {
...      "_id": null,
...      "v1": { "$addToSet": "$Value1" },
...      "v2": { "$addToSet": "$Value2" }
...   }},
...
...   { "$project": {
...      "AllValues": { "$setUnion": [ "$v1", "$v2" ] }
...   }}
...]);

Điều này sẽ tạo ra kết quả sau -

{ "_id" : null, "AllValues" : [ 10, 20, 30 ] }