MongoDB:在字段类型不相同时查找重复项

MongoDB:在字段类型不相同时查找重复项,mongodb,casting,duplicates,mongodb-query,Mongodb,Casting,Duplicates,Mongodb Query,即使字段类型不同,如何检测重复 {id : 1 , price : 5} {id : 2 , price : "6"} {id : 3 , price : "5"} 所以复制品是 {id : 1 , price : 5} {id : 3 , price : "5"} 您可以使用$substr将字符串从索引0转换为-1(字符串的其余部分): 聚合的其余部分按$price计算发生次数并匹配计数大于1(重复)的项目。在item中,您有重复的初始项: { "_id" : "5", "count" :

即使字段类型不同,如何检测重复

{id : 1 , price : 5}
{id : 2 , price : "6"}
{id : 3 , price : "5"}
所以复制品是

{id : 1 , price : 5}
{id : 3 , price : "5"}

您可以使用
$substr
将字符串从索引0转换为-1(字符串的其余部分):

聚合的其余部分按
$price
计算发生次数并匹配计数大于1(重复)的项目。在
item
中,您有重复的初始项:

{ "_id" : "5", "count" : 2, "item" : [ { "_id" : ObjectId("58616dc177b68a6c54252bc8"), "id" : 1, "price" : "5" }, { "_id" : ObjectId("58616dc177b68a6c54252bca"), "id" : 3, "price" : "5" } ] }
要计算重复的不同字段的数量,请添加:

{
    "$group": {
        "_id": null,
        "totalCount": {
            "$sum": 1
        }
    }
}

为什么要以数字和字符串格式插入
price
,插入数字或字符串的更好方法是避免特征处理。如果您事先知道
price
将是数字或字符串,那么您可以据此查询我可以使用count()吗?我试过了,但没有成功。。。。我怎样才能找到我有多少重复的内容呢?我已经用重复的不同字段数更新了我的帖子(例如,它将给出1,因为只有“5”重复)
{
    "$group": {
        "_id": null,
        "totalCount": {
            "$sum": 1
        }
    }
}