MongoDB 索引、 聚合
在MongoDB中,创建索引可以提高查询性能。以下是创建单字段索引和复合索引的示例代码:
// 连接到MongoDB数据库
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mydatabase';
MongoClient.connect(url, function(err, client) {
if(err) throw err;
const db = client.db(dbName);
// 创建单字段索引
db.collection('mycollection').createIndex({ field1: 1 }, function(err, result) {
if(err) throw err;
console.log('单字段索引创建成功');
});
// 创建复合索引
db.collection('mycollection').createIndex({ field1: 1, field2: -1 }, function(err, result) {
if(err) throw err;
console.log('复合索引创建成功');
});
// 使用聚合框架进行数据分析
const collection = db.collection('mycollection');
const aggregation = [
{ $match: { status: 'A' } },
{ $group: { _id: '$cust_id', total: { $sum: '$amount' } } }
];
collection.aggregate(aggregation).toArray(function(err, results) {
if(err) throw err;
console.log(results);
client.close();
});
});
在这个例子中,我们首先连接到MongoDB数据库,然后创建了两个索引:一个是在field1
上升序排列的单字段索引,另一个是在field1
上升序和field2
降序的复合索引。接下来,我们使用aggregate
方法进行数据聚合,这里的聚合管道包含了$match
(筛选状态为'A'的文档)和$group
(按cust_id
字段分组并计算amount
字段的总和)。最后,我们处理可能出现的错误,并在完成后关闭数据库连接。
评论已关闭