2016-10-24 41 views
0

我有一个集合,它具有唯一的_id字段,但在transactionreceipt字段中具有重复值。我想通过独特的transactionreceipt将其过滤出来,并且我想要该记录的完整文档数据。这可能吗?根据唯一ID选择完整记录mongodb

我读的只有索引可以从使用不同的取得..有什么我可以得到完整的文件也。

我的数据集:

{"_id": {"$oid": "580af4ce1b407e114sdvsdbf"}, 
    "transactionreceipt":"734416173864583200", 
    "type":"recharge" 
}, 
{"_id": {"$oid": "580af4ce1b407f495sagfdgaed"}, 
    "transactionreceipt":"734416173864583200", 
    "type":"recharge" 
}, 
{"_id": {"$oid": "580af4ce1b407safasfe114bf"}, 
    "transactionreceipt":"734585659418738700", 
    "type":"recharge" 
}, 
{"_id": {"$oid": "580af4ce1b407f4956436sdg"}, 
    "transactionreceipt":"734585659418738702", 
    "type":"recharge" 
}, 
{"_id": {"$oid": "580af4ce1b407f495safasgvd"}, 
    "transactionreceipt":"734723784694562800", 
    "type":"recharge" 
}, 
{"_id": {"$oid": "580af4ce1b407f495325ds"}, 
    "transactionreceipt":"734723784694562808", 
    "type":"recharge" 
} 

和查询会是什么样

var tx = db.usertransactions.distinct("transactionreceipt",{"type" : "recharge"}) 
tx.forEach(statistics=>{ 
     printjson(parseFloat(statistics));// i want all details to be displayed here 
     } 
) 

我只能得到transactionreceipt这里,没有别的。我哪里错了?有没有可以做到这一点的任何聚合函数?

回答

0

什么努力下way-

var tx = db.usertransactions.aggregate(
[ 
    { $match: { type: "recharge" } }, 
    { 
     $group: {    
      _id : { id: { $id: "$oid" }, transactionreceipt: { $transacreceipt: "$transactionreceipt" }} 
     } 
    }, 

]) tx.forEach(statistics=>{ 
     printjson(parseFloat(statistics)); 
    }) 

您可以查询详细情况 - https://docs.mongodb.com/manual/reference/operator/aggregation/group/