如何在不同的对象字段中查找重复值?

Posted

技术标签:

【中文标题】如何在不同的对象字段中查找重复值?【英文标题】:How to find duplicate values in different object fields? 【发布时间】:2019-05-01 10:57:44 【问题描述】:

如何使用mongoose 搜索以查找不同字段中的重复值?

这是示例文档:


 "followers": 
               
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               ,
               
                "_id": "5bf6d610d3a3f31a6c75a8c3"
               
              ,
 "following": 
               
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               ,
               
                "_id": "5bf6d610d3a3f31a6c75b7a2"
               
              ,

我想在followersfollowing 字段下找到相同的_id 值。

预期输出:


 
  "_id": "5bf6d610d3a3f31a6c75a9f4"
 

我应该使用什么查询?

【问题讨论】:

followersfollowing 将是数组。对吗? @HardikShah 是的! 【参考方案1】:

试试这个:

db.collection.aggregate([
     $unwind : "$followers",
     $unwind : "$following",
     $project : 
        _id: 0,
        matchId:  $cond: [ $eq: [ "$followers._id", "$following._id" ] ,
          "$following._id", null ] 
    ,
    $match : "matchId" : $ne : null
])

输出:

/* 1 */

    "matchId" : "5bf6d610d3a3f31a6c75a9f4"

【讨论】:

谢谢,但是我如何在单个文档中查询(我想在单个文档中找到重复的 id,但在两个不同的字段中) 是的,您可以使用我提供的相同 sn-p。只需将 $match 添加到聚合顶层的特定 Id 即可。您可以发布整个示例数据结构吗?所以,我可以根据您的要求进行修改。

以上是关于如何在不同的对象字段中查找重复值?的主要内容,如果未能解决你的问题,请参考以下文章

在字典中查找元素并检查对象的类型[重复]

如何在 JSON 对象中传递变量 [重复]

在 UITableview 中,键入的文本字段值在不同的单元格中重复,如何使用目标 c 纠正它

SQL查找某一字段相同,某一字段不同的数据

如何在mongodb中查找各种数组的“作者”字段?

如何在对象数组中查找和更新值?