好的,所以我试图确定一个具有匹配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});
我可以说逻辑上有缺陷,但是只是不确定如何去纠正它们。这只是为了勾勒出我的思路。也许有完全不同的方式来解决此问题。