如何查询在一个字段中具有重复ID但在另一个字段中具有唯一ID的文档?

时间:2019-05-04 00:16:50

标签: mongodb mongodb-query

我正在尝试查询序列号重复但收据号不同的文档。因此,序列号字段必须在不同的文档中匹配,但是收据编号字段必须不同。

现在,我有一个查询,该查询查找所有具有重复序列号的文档,但不区分其收据号,这意味着当我希望收据号为唯一/非重复。

这是我当前的查询:

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

任何帮助将不胜感激!谢谢。

0 个答案:

没有答案