MongoDB 使用复制函数打印不同的字段
MongoDB using duplicate function to print different field
db.collection.aggregate([{"$group" : {"_id": "$fieldA", "count": {"$sum": 1}}},{"$match":{"_id" :{"$ne":null}, "count" : {"$gt":1}}},{"$project": {"fieldA":"$_id", "_id" : 0}}]);
我目前正在使用此代码查找重复项,但实际上我想打印 fieldB 而不是 fieldA。通过使用上面的内容,我相信我已经创建了一个子集?有没有简单的方法只打印fieldB?
即。我要打印 {"_id":0, "fieldB":1}
我能想到的唯一方法是命名这个子集,然后与原始子集连接,然后只打印 fieldB,但这似乎效率不高。
要查看最后一个字段 B,您可以这样做:
$最后:
playground1
(但是在这里,如果每个重复的字段 A 有不同的字段 B,您将不会发现)
或者要查看重复的 filedA 的所有字段 B,您可以这样做:
$推送:
playground2
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
}
}
])
db.collection.aggregate([{"$group" : {"_id": "$fieldA", "count": {"$sum": 1}}},{"$match":{"_id" :{"$ne":null}, "count" : {"$gt":1}}},{"$project": {"fieldA":"$_id", "_id" : 0}}]);
我目前正在使用此代码查找重复项,但实际上我想打印 fieldB 而不是 fieldA。通过使用上面的内容,我相信我已经创建了一个子集?有没有简单的方法只打印fieldB?
即。我要打印 {"_id":0, "fieldB":1}
我能想到的唯一方法是命名这个子集,然后与原始子集连接,然后只打印 fieldB,但这似乎效率不高。
要查看最后一个字段 B,您可以这样做:
$最后: playground1 (但是在这里,如果每个重复的字段 A 有不同的字段 B,您将不会发现)
或者要查看重复的 filedA 的所有字段 B,您可以这样做:
$推送: playground2
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
}
}
])