Как запросить документы с дублирующимися идентификаторами в одном поле, но уникальными идентификаторами в другом поле? - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь запросить документы с повторяющимися серийными номерами, но с разными номерами квитанций. Таким образом, поле серийного номера должно совпадать в разных документах, но поле номера квитанции должно быть другим.

Сейчас у меня есть запрос, который находит все документы с дублирующимися серийными номерами, но не различает их номера квитанций, то есть я получил пакет документов, которые также имеют дубликаты номеров квитанций, когда я хочу, чтобы номера квитанций были уникальный / не дубликат.

Это мой текущий запрос:

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"
            }
        }
    ]
);

Любая помощь будет оценена! Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...