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

Thực hiện Min/Max với MongoDB Aggregation

Để tính min/max trong MongoDB, sử dụng toán tử $min và $max trong stage $group.

Tạo collection với điểm số:

> db.demo251.insertOne({"Marks":78});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46c0001627c0c63e7dba74") }
> db.demo251.insertOne({"Marks":87});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46c0031627c0c63e7dba75") }
> db.demo251.insertOne({"Marks":56});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46c0061627c0c63e7dba76") }
> db.demo251.insertOne({"Marks":76});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46c00c1627c0c63e7dba77") }

Hiển thị dữ liệu:

> db.demo251.find();
{ "_id" : ObjectId("5e46c0001627c0c63e7dba74"), "Marks" : 78 }
{ "_id" : ObjectId("5e46c0031627c0c63e7dba75"), "Marks" : 87 }
{ "_id" : ObjectId("5e46c0061627c0c63e7dba76"), "Marks" : 56 }
{ "_id" : ObjectId("5e46c00c1627c0c63e7dba77"), "Marks" : 76 }

Aggregation tính Min và Max cùng lúc:

> db.demo251.aggregate([
...   { "$group": {
...     "_id": null,
...     "MaxMarks": { "$max": "$Marks" },
...     "MinMarks": { "$min": "$Marks" }
...   }}
...])

Kết quả trả về Min=56, Max=87:

{ "_id" : null, "MaxMarks" : 87, "MinMarks" : 56 }