gpt4 book ai didi

mongodb - Mongo 为两个或多个字段的条目查找重复项

转载 作者:IT老高 更新时间:2023-10-28 13:08:10 29 4
gpt4 key购买 nike

我有这样的文件:

{
"_id" : ObjectId("557eaf444ba222d545c3dffc"),
"foreing" : ObjectId("538726124ba2222c0c0248ae"),
"value" : "test",
}

我想查找对 foreing & value 具有重复值的所有文档。

最佳答案

您可以通过运行以下聚合管道操作轻松识别重复项:

db.collection.aggregate([
{
"$group": {
"_id": { "foreing": "$foreing", "value": "$value" },
"uniqueIds": { "$addToSet": "$_id" },
"count": { "$sum": 1 }
}
},
{ "$match": { "count": { "$gt": 1 } } }
])

$group第一步中的 运算符用于将文档按 foreignvalue 键值分组,然后创建 _id 数组使用 $addToSet 将每个分组文档的值作为 uniqueIds 字段 运算符。这为您提供了每个组的唯一表达式值数组。使用 $sum 获取用于后续管道阶段的分组文档总数 运算符。

在第二个流水线阶段,使用 $match 运算符过滤掉所有计数为 1 的文档。过滤掉的文档代表唯一的索引键。

剩余的文档将是集合中具有重复键值对的文档 foreing & value

关于mongodb - Mongo 为两个或多个字段的条目查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624531/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com