Я пытаюсь запросить документы с повторяющимися серийными номерами, но с разными номерами квитанций. Таким образом, поле серийного номера должно совпадать в разных документах, но поле номера квитанции должно быть другим.
Сейчас у меня есть запрос, который находит все документы с дублирующимися серийными номерами, но не различает их номера квитанций, то есть я получил пакет документов, которые также имеют дубликаты номеров квитанций, когда я хочу, чтобы номера квитанций были уникальный / не дубликат.
Это мой текущий запрос:
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"
}
}
]
);
Любая помощь будет оценена! Спасибо.