MongoDB使用重复功能打印不同的字段



db.collection.aggregate([{"$group" : {"_id": "$fieldA", "count": {"$sum": 1}}},{"$match":{"_id" :{"$ne":null}, "count" : {"$gt":1}}},{"$project": {"fieldA":"$_id", "_id" : 0}}]);

我目前正在使用此代码查找重复项,但我实际上想打印字段B,而不是字段A。通过使用以上内容,我相信我已经创建了一个子集?有没有一种简单的方法只打印字段B?

即。我想打印{"_id":0, "fieldB":1}

我能想到的唯一方法是命名这个子集,然后与原始子集连接,然后只打印字段B,但这似乎并不有效。

要查看最后一个字段B,可以执行以下操作:

$last:操场1(但在这里,如果每个重复的字段A有不同的字段B,你不会发现(

或者,要查看重复文件A的所有字段B,可以执行以下操作:

$push:操场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
}
}
])

最新更新