MongoDB-查找匹配一个字段但不匹配第二个字段的帐户

时间:2018-07-03 18:22:42

标签: mongodb mongodb-query aggregate

好的,所以我试图确定一个具有匹配SSN的帐户列表,但是DOB是不同的。

有问题的字段是:account_num,ssn,dob。最后,对于那些具有多个与SSN匹配但具有不同DOB的帐户的帐户,我需要使用account_num。我希望这是有道理的。

我一直在尝试一些类似的方法,但是没有得到任何结果...

    db.getCollection("accounts").aggregate(
   [
       {"$match" : {"ssn" : { "$exists" : true }}},
       {"$match" : {"ssn" : {"$ne" : [ ]}}},
       {"$group" : {"_id" : {"ssn" : "$ssn"},"count" : {"$sum" : 1}}},
       {"$match" : {"count" : {"$gt" : 1}}},
       {"$group" : {"_id" : {"dob" : "$dob"},"count" : {"$sum" : 1}}},
       {"$match" : {"count" : "1"}},
       {"$project" : {"account_num" : 1,"ssn" : 1,"dob" : 1}}
   ],
   {"allowDiskUse" : true});

我可以说逻辑上有缺陷,但是只是不确定如何去纠正它们。这只是为了勾勒出我的思路。也许有完全不同的方式来解决此问题。

0 个答案:

没有答案