Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Javascript 如何在不同的对象字段中查找重复值?_Javascript_Node.js_Mongodb_Mongoose_Aggregation Framework - Fatal编程技术网

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

Javascript 如何在不同的对象字段中查找重复值?,javascript,node.js,mongodb,mongoose,aggregation-framework,Javascript,Node.js,Mongodb,Mongoose,Aggregation Framework,如何使用mongoose搜索不同字段中的重复值 这里是示例文档: { "followers": { { "_id": "5bf6d610d3a3f31a6c75a9f4" }, { "_id": "5bf6d610d3a3f31a6c75a8c3" } }, "following"

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


这里是示例文档:

{
 "followers": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75a8c3"
               }
              },
 "following": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75b7a2"
               }
              },
}
{
 {
  "_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"
}

我想在
followers
followers
字段下找到相同的
\u id

预期输出:

{
 "followers": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75a8c3"
               }
              },
 "following": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75b7a2"
               }
              },
}
{
 {
  "_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"
}

我应该使用什么查询?

试试这个:

{
 "followers": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75a8c3"
               }
              },
 "following": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75b7a2"
               }
              },
}
{
 {
  "_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"
}
输出:

{
 "followers": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75a8c3"
               }
              },
 "following": {
               {
                "_id": "5bf6d610d3a3f31a6c75a9f4"
               },
               {
                "_id": "5bf6d610d3a3f31a6c75b7a2"
               }
              },
}
{
 {
  "_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"
}

followers
follower
将是数组。是吗?@HardikShah是的!谢谢,但是我如何在单个文档中进行查询(我想在单个文档中但在两个不同的字段中查找重复ID)是的,您可以使用我提供的相同代码片段进行查询。只需将
$match
添加到聚合顶层的特定Id即可。你能发布你的整个样本数据结构吗?所以,我可以修改您的要求。