在MongoDB数组中查找重复值
我有一个集合,其中包含以下格式的条目:在MongoDB数组中查找重复值,mongodb,Mongodb,我有一个集合,其中包含以下格式的条目: { “_id”:ObjectId(“5538e75c3cea103b25ff94a3”), “userID”:“USER001”, “用户名”:“manish”, “大学生”:[ “COL_HARY”, “玛丽上校”, “约翰上校”, “COL_CAS”, “詹姆斯上校”, “玛丽上校”, “玛丽上校”, “约翰上校” ] } 我要找出那些重复的同事。因此,结果应该给出“COL_MARY”、“COL_JOHNS”以及重复计数(如果可能)。请确实提供mon
{
“_id”:ObjectId(“5538e75c3cea103b25ff94a3”),
“userID”:“USER001”,
“用户名”:“manish”,
“大学生”:[
“COL_HARY”,
“玛丽上校”,
“约翰上校”,
“COL_CAS”,
“詹姆斯上校”,
“玛丽上校”,
“玛丽上校”,
“约翰上校”
]
}
我要找出那些重复的同事。因此,结果应该给出“COL_MARY”、“COL_JOHNS”以及重复计数(如果可能)。请确实提供mongo查询以找到它。可能会有许多这样的文档,因此您需要每个ObjectId
db.myCollection.aggregate([
{"$project": {"collegeIDs":1}},
{"$unwind":"$collegeIDs"},
{"$group": {"_id":{"_id":"$_id", "cid":"$collegeIDs"}, "count":{"$sum":1}}},
{"$match": {"count":{"$gt":1}}},
{"$group": {"_id": "$_id._id", "collegeIDs":{"$addToSet":"$_id.cid"}}}
])
这可能是您想要的,但您的问题并不清楚:
db.myCollection.aggregate([
{"$match": {"userID":"USER001"}},
{"$project": {"collegeIDs":1, "_id":0}},
{"$unwind":"$collegeIDs"},
{"$group": {"_id":"$collegeIDs", "count":{"$sum":1}}},
{"$match": {"count":{"$gt":1}}},
])
请在发布您自己的问题之前搜索其他类似问题。我在不到一分钟的时间里通过谷歌搜索“mongodb查找重复值数组”。有很多资源可以帮助你解决这个问题。也尝试向我们展示你所做的事情。这样我们可以更好地指导您。是的,我想为该收藏中的特定用户找到它。我的意思是通过在查询中提供userid进行过滤。然后就是你的解决方案,不管是谁,不管他做了什么。您的数据结果是:{“_id”:ObjectId(“5538e75c3cea103b25ff94a3”),“collegeIDs”:[“COL_MARY”,“COL_JOHNS”]}在该查询中,我应该在哪里提供用户id?啊,您希望它用于特定的用户id吗?然后在顶部添加一个$match。