我的记录是 -
{ "_id" : ObjectId("5980edf0523e2bf6ff12937b"), "RecordNumber":"R1", "PONumber" : "P9888", "ImportBatchID" : "9876", "SAPNumber" : "W12345678" }
{ "_id" : ObjectId("5980ee46523e2bf6ff12937c"), "RecordNumber":"R2", "PONumber" : "P9888", "ImportBatchID" : "9876", "SAPNumber" : "W12345678" }
{ "_id" : ObjectId("5980ee47523e2bf6ff129380"), "RecordNumber":"R3", "ImportBatchID" : "9876", "SAPNumber" : "W12345679", "PONumber" : "P9888" }
{ "_id" : ObjectId("5980ee46523e2bf6ff12937d"), "RecordNumber":"R4", "PONumber" : "P9888", "ImportBatchID" : "9876" }
{ "_id" : ObjectId("5980ee46523e2bf6ff12937e"), "RecordNumber":"R5", "PONumber" : "P9888", "ImportBatchID" : "9876", "SalesNumber" : "SO1" }
{ "_id" : ObjectId("5980ee46523e2bf6ff12937f"), "RecordNumber":"R6", "ImportBatchID" : "9876", "SalesNumber" : "SO1" }
这就是我需要的 - 记录需要首先根据“SAPNumber”进行分组,如果根据“PONumber”不可用, 如果那也不可用,那么基于“SalesNumber”。
因此,R1和R2应归为同一组,因为它们具有相同的“SAPNumber”。
但R3应该在不同的组中,因为它具有不同的“SAPNumber”。
现在,对于R4和R5,由于它们没有“SAPNumber”,因此应根据“PONumber”对它们进行分组。由于它们与R1和R2具有相同的“PONumber”, 所以它们应该与R1和R2在同一组中。
现在R6没有“SAPNumber”或“PONumber”,所以它应该根据“SalesNumber”进行分组,因为它与R5具有相同的“SalesNumber”, 所以他们应该在同一组。 含义R1,R2,R4,R5和R6应全部在同一组中,R3在不同的组中。 添加“GroupID”后,输出应该像 -
{ "_id" : ObjectId("5980edf0523e2bf6ff12937b"), "RecordNumber":"R1", "GroupID":"G1", "PONumber" : "P9888", "ImportBatchID" : "9876", "SAPNumber" : "W12345678"}
{ "_id" : ObjectId("5980ee46523e2bf6ff12937c"), "RecordNumber":"R2", "GroupID":"G1", "PONumber" : "P9888", "ImportBatchID" : "9876", "SAPNumber" : "W12345678"}
{ "_id" : ObjectId("5980ee46523e2bf6ff12937d"), "RecordNumber":"R4", "GroupID":"G1", "PONumber" : "P9888", "ImportBatchID" : "9876"}
{ "_id" : ObjectId("5980ee46523e2bf6ff12937e"), "RecordNumber":"R5", "GroupID":"G1", "PONumber" : "P9888", "ImportBatchID" : "9876", "SalesNumber" : "SO1"}
{ "_id" : ObjectId("5980ee46523e2bf6ff12937f"), "RecordNumber":"R6", "GroupID":"G1", "ImportBatchID" : "9876", "SalesNumber" : "SO1"}
{ "_id" : ObjectId("5980ee47523e2bf6ff129380"), "RecordNumber":"R3", "GroupID":"G2", "ImportBatchID" : "9876", "SAPNumber" : "W12345679", "PONumber" : "P9888"}
请你指导我怎么做?我尝试使用聚合做但没有成功。 可以使用MapReduce完成。如果是的话,代码应该是什么样的?请帮忙。