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

Sắp xếp và Nhóm trong một truy vấn tổng hợp MongoDB?

Để sắp xếp và nhóm trong một truy vấn, hãy sử dụng toán tử $ group cùng với khung tổng hợp. Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.sortAndGroupDemo.insertOne({
   Price :40,
   Product: 10
});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce8f2bc78f00858fb12e907")
}
> db.sortAndGroupDemo.insertOne({
   Price :100,
   Product: 10
});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce8f2bc78f00858fb12e908")
}
> db.sortAndGroupDemo.insertOne({
   Price :90,
   Product: 20
});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce8f2bc78f00858fb12e909")
}
> db.sortAndGroupDemo.insertOne({
   Price :200,
   Product: 10
});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce8f2bc78f00858fb12e90a")
}
> db.sortAndGroupDemo.insertOne({
   Price :70,
   Product: 20
});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce8f2bc78f00858fb12e90b")
}
> db.sortAndGroupDemo.insertOne({
   Price :70,
   Product: 30
});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce8f2bd78f00858fb12e90c")
}

Sau đây là truy vấn để 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.sortAndGroupDemo.find().pretty();

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

{
   "_id" : ObjectId("5ce8f2bc78f00858fb12e907"),
   "Price" : 40,
   "Product" : 10
}
{
   "_id" : ObjectId("5ce8f2bc78f00858fb12e908"),
   "Price" : 100,
   "Product" : 10
}
{
   "_id" : ObjectId("5ce8f2bc78f00858fb12e909"),
   "Price" : 90,
   "Product" : 20
}
{
   "_id" : ObjectId("5ce8f2bc78f00858fb12e90a"),
   "Price" : 200,
   "Product" : 10
}
{
   "_id" : ObjectId("5ce8f2bc78f00858fb12e90b"),
   "Price" : 70,
   "Product" : 20
}
{
   "_id" : ObjectId("5ce8f2bd78f00858fb12e90c"),
   "Price" : 70,
   "Product" : 30
}

Sau đây là truy vấn để sắp xếp và nhóm trong một truy vấn tổng hợp MongoDB -

> db.sortAndGroupDemo.aggregate(
   [
      { "$group": { "_id": "$Product" }},
      { "$sort" : { "Price": 1 }},
      { "$project":{"_id":1 }}
   ]
);

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

{ "_id" : 30 }
{ "_id" : 20 }
{ "_id" : 10 }