mongodb - 在 MongoDB 中查找重复记录

如何在 mongo 集合中查找重复字段。

我想检查是否有任何“名称”字段重复。

{
    "name" : "ksqn291",
    "__v" : 0,
    "_id" : ObjectId("540f346c3e7fc1054ffa7086"),
    "channel" : "Sales"
}

非常感谢!

最佳答案

name 上使用聚合并使用 count > 1 获取 name:

db.collection.aggregate([
    {"$group" : { "_id": "$name", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, 
    {"$project": {"name" : "$_id", "_id" : 0} }
]);

按重复次数从多到少对结果进行排序:

db.collection.aggregate([
    {"$group" : { "_id": "$name", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, 
    {"$sort": {"count" : -1} },
    {"$project": {"name" : "$_id", "_id" : 0} }     
]);

要与“name”以外的其他列名一起使用,请将“$name”更改为“$column_name

https://stackoverflow.com/questions/26984799/

相关文章:

ruby - Mongoid 还是 MongoMapper?

node.js - 保存后 Mongoose 填充

python - 用于 Python 的 MongoDB ORM?

node.js - Mongoose findByIdAndUpdate 没有返回正确的模型

mongodb - MongoDB 中 Multi-Tenancy 数据库的推荐方法是什么?

mongodb - 如何在 MongoDB 中将集合导出到 CSV?

mongodb - 在 Mongoose/MongoDB 中创建多字段索引

mongodb - 值不为空的 Mongoose 查询

mongodb - Meteor 应用程序 — 重置已部署应用程序的数据库

javascript - Mongoose .js : Find user by username