📅  最后修改于: 2023-12-03 14:55:48.692000             🧑  作者: Mango
在 MongoDB 中,可以使用聚合管道和 $group
操作符来检查集合中的重复值。以下是一种简单的方法。
在 Python 中,可以借助 pymongo
库连接到 MongoDB 数据库。以下是一个简单的代码示例。
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]
$group
操作符检查重复值可以使用聚合管道和 $group
操作符按照某个字段分组,并且使用 $sum
操作符统计每个分组中的文档数。这样可以获取到分组中重复的文档数。
pipeline = [
{"$group": {"_id": "$field_name", "count": {"$sum": 1}}},
{"$match": {"count": {"$gt": 1}}}
]
result = collection.aggregate(pipeline)
field_name
是需要检查重复值的字段名。$match
操作符用于过滤掉文档数少于 2 的分组。
查询结果是一个游标对象,需要遍历游标并处理每个文档。
for doc in result:
print(doc)
至此,我们就可以检查 MongoDB 集合中是否存在重复值。
完整代码如下:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]
pipeline = [
{"$group": {"_id": "$field_name", "count": {"$sum": 1}}},
{"$match": {"count": {"$gt": 1}}}
]
result = collection.aggregate(pipeline)
for doc in result:
print(doc)