Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MongoDB数组中查找重复值_Mongodb - Fatal编程技术网

在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。