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

标签 javascript node.js mongodb mongoose aggregation-framework

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


这是示例文档:

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

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

预期输出:

{
 {
  "_id": "5bf6d610d3a3f31a6c75a9f4"
 }
}

我应该使用什么查询?

最佳答案

试试这个:

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"
}

关于javascript - 如何在不同的对象字段中查找重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53538011/

相关文章:

javascript - 如何用 `replace`方法将多个关键字替换成相应的关键字?

Javascript 小部件与 iFrame?安全问题?

javascript - 从 Javascript 的回调函数中调用对象函数

java - 如何使用 Java 将 MongoDB 对象 id 转换为 Java Date 或 Instant

json - Mongodb Mongoimport 太大 : Failure parsing errors

javascript - 比较 JavaScript 和 PHP 变量

node.js - Typescript + Express = 锁定在配置循环中

node.js - 我无法在 ubuntu 上安装 @angular/cli

javascript - 尝试启动 Express 应用程序时出现奇怪的 Node.js 错误

node.js - 如何从字符串的[array]进行一般搜索