我正在尝试查询序列号重复但收据号不同的文档。因此,序列号字段必须在不同的文档中匹配,但是收据编号字段必须不同。
现在,我有一个查询,该查询查找所有具有重复序列号的文档,但不区分其收据号,这意味着当我希望收据号为唯一/非重复。
这是我当前的查询:
db.getCollection("purchases").aggregate(
[
{
"$match" : {
"deleted" : null,
"serialNumber" : {
"$ne" : null
}
}
},
{
"$group" : {
"_id" : {
"documentId" : "$documentId",
"serialNumber" : "$serialNumber"
},
"count" : {
"$sum" : 1.0
},
"purchases" : {
"$push" : {
"_id" : "$_id"
}
}
}
},
{
"$match" : {
"count" : {
"$gt" : 1.0
}
}
},
{
"$sort" : {
"count" : -1.0
}
},
{
"$project" : {
"_id" : 1.0,
"count" : 1.0,
"purchase" : "$purchases._id"
}
}
]
);
任何帮助将不胜感激!谢谢。