MongoDB数据去重(单字段和多字段去重)(百万级数据)
// 引入MongoDB客户端
const MongoClient = require('mongodb').MongoClient;
// 连接到MongoDB数据库
MongoClient.connect('mongodb://localhost:27017/mydatabase', function(err, db) {
if (err) throw err;
// 选择数据库和集合
let dbo = db.db('mydatabase');
let collection = dbo.collection('mycollection');
// 单字段去重
collection.distinct('fieldName', function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
// 多字段联合去重
collection.aggregate([
{
$group: {
_id: { field1: "$field1", field2: "$field2" },
uniqueIds: { $addToSet: "$_id" },
count: { $sum: 1 }
}
},
{
$sort: { count: -1 }
}
]).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
这段代码首先连接到MongoDB数据库,然后使用distinct
方法进行单字段去重,使用聚合框架(aggregate framework)进行多字段联合去重。在实际应用中,应该根据数据量的大小和去重需求选择合适的方法,对于大数据量,应该使用索引和适当的查询条件来优化性能。
评论已关闭