db.collection.aggregate([{"$group" : {"_id": "$fieldA", "count": {"$sum": 1}}},{"$match":{"_id" :{"$ne":null}, "count" : {"$gt":1}}},{"$project": {"fieldA":"$_id", "_id" : 0}}]);
我目前正在使用此代碼查找重復項,但我實際上想列印 fieldB 而不是 fieldA。通過使用上述內容,我相信我已經創建了一個子集?有沒有一種簡單的方法只列印fieldB?
IE。我要列印{"_id":0, "fieldB":1}
我能想到的唯一方法是命名這個子集,然后加入原始子集,然后只列印 fieldB 但這似乎效率不高。
uj5u.com熱心網友回復:
要查看最后一個 fieldB,您可以執行以下操作:
$last: playground1 (但是在這里如果每個重復的 fieldA 有不同的 fieldB 你不會發現)
或者要查看重復的欄位 B 的所有欄位,您可以執行以下操作:
$推: 游樂場2
db.collection.aggregate([
{
"$group": {
"_id": "$fieldA",
"count": {
"$sum": 1
},
fieldB: {
$push: "$fieldB"
}
}
},
{
"$match": {
"_id": {
"$ne": null
},
"count": {
"$gt": 1
}
}
},
{
"$project": {
"fieldA": "$_id",
"fieldB": 1,
"_id": 0
}
}
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446374.html
