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_Mongodb Query_Pymongo_Database - Fatal编程技术网

Mongodb-返回所有关联文档,其中包含从另一个查询派生的键的值

Mongodb-返回所有关联文档,其中包含从另一个查询派生的键的值,mongodb,mongodb-query,pymongo,database,Mongodb,Mongodb Query,Pymongo,Database,我有一份结构如下的文件: { "Type" : "Request", "Cat" : "A", "ID" : 10 } { "Type" : "Processed", "Cat" : "A", "ID" : 10 } { "Type" : "Receieved", "Cat" : "A", "ID" : 10 } { "Type" : "Receieved", "Cat" : "B", "ID"

我有一份结构如下的文件:

{
    "Type" : "Request",
    "Cat" : "A",
    "ID" : 10
}

{
    "Type" : "Processed",
    "Cat" : "A",
    "ID" : 10
}

{
    "Type" : "Receieved",
    "Cat" : "A",
    "ID" : 10
}

{
    "Type" : "Receieved",
    "Cat" : "B",
    "ID" : 11
}

{
    "Type" : "Processed",
    "Cat" : "C",
    "ID" : 12
}
我想要文件:

  • 类型为“Processed”并获取其ID的文档
  • 以及从上面获得的ID的所有相关文档(第一步) 我需要这样的结果:

    {
        "Type" : "Request"
        "Cat" : "A"
        "ID" : 10
    }
    
    {
        "Type" : "Processed"
        "Cat" : "A"
        "ID" : 10
    }
    
    {
        "Type" : "Receieved"
        "Cat" : "A"
        "ID" : 10
    }
    
    {
        "Type" : "Processed"
        "Cat" : "C"
        "ID" : 12
    }
    

    有人能帮我实现这个目标吗?我总共在$match下使用了elemmatch,但它没有按预期工作

    您可以尝试以下方法

    db.collection.aggregate([
         {$project : {
               "ID":1,
                "doc.Type" : "$Type",
                "doc.Cat" :  "$Cat",
                "doc.ID" :   "$ID"
            }
         }
         {$group : {
               _id : "$ID",
               docs : {$push : doc}
            }
         },
         {$match : {
               "docs.Type":"Processed"
            }      
         },
         {$unwind : "$docs"},
         {$project : {
               _id : 0,
               docs : 0,
               "Type" : "$docs.Type",
               "Cat" : "$docs.Cat",
               "ID" : "$docs.ID"
            }
         }
    ])