创建数据表:first 创建集合collection 在集合中插入6条文档:包含id、name、class、score、age五个属性字段 插入后删出一条文档 采用pipline方式:以name分组,分别求出组内score的平均值、最大值和最小值
时间: 2024-01-29 13:03:15 浏览: 23
首先,需要连接到MongoDB数据库并创建集合。以下是示例代码:
```
// 连接到数据库
const MongoClient = require('mongodb').MongoClient;
const uri = 'mongodb://localhost:27017/mydb';
const client = new MongoClient(uri, { useNewUrlParser: true });
// 创建集合
client.connect(err => {
const collection = client.db("mydb").collection("first");
// 插入文档
collection.insertMany([
{ id: 1, name: "Alice", class: "A", score: 85, age: 18 },
{ id: 2, name: "Bob", class: "B", score: 90, age: 19 },
{ id: 3, name: "Charlie", class: "A", score: 75, age: 20 },
{ id: 4, name: "David", class: "B", score: 80, age: 21 },
{ id: 5, name: "Emily", class: "C", score: 95, age: 22 },
{ id: 6, name: "Frank", class: "C", score: 70, age: 23 }
], function(err, result) {
// 删出文档
collection.deleteOne({ id: 1 }, function(err, result) {
// 使用pipeline方式分组求值
collection.aggregate([
{ $group: {
_id: "$name",
avg_score: { $avg: "$score" },
max_score: { $max: "$score" },
min_score: { $min: "$score" }
}
}
]).toArray(function(err, result) {
console.log(result);
client.close();
});
});
});
});
```
以上代码将创建一个名为“first”的集合,并插入6个文档。然后,它将删除id为1的文档,并使用管道(pipeline)方式对name进行分组,分别计算组内score的平均值、最大值和最小值,并将结果打印到控制台。最后,关闭MongoDB连接。