Database 我可以在MongoDB中将一个聚合命令导入另一个吗?

Database 我可以在MongoDB中将一个聚合命令导入另一个吗?,database,mongodb,mongodb-query,aggregation-framework,Database,Mongodb,Mongodb Query,Aggregation Framework,我有两个问题: db.employee.aggregate({$match: {lname:"Smith"}}, {$project: {"SSN": 1, "_id": 0}}) db.works_on.aggregate({$match: {essn: 123456789}}, {$project: {"pno": 1, "_id": 0}}) 是否有一种方法可以将其转换为单个查询,其中第一个聚合将SSN输出替换为essn编号?是的,您可以使用$lookup来执行此操作。尝试下面的查询 d

我有两个问题:

db.employee.aggregate({$match: {lname:"Smith"}}, {$project: {"SSN": 1, "_id": 0}})
db.works_on.aggregate({$match: {essn: 123456789}}, {$project: {"pno": 1, "_id": 0}})
是否有一种方法可以将其转换为单个查询,其中第一个聚合将SSN输出替换为essn编号?

是的,您可以使用$lookup来执行此操作。尝试下面的查询

db.employee.aggregate([
    {
        $lookup:{
            from: "works_on",       
            localField: "SSN",   
            foreignField: "essn", 
            as: "employee_works"         
        }
    },
    {   $unwind:"$employee_works" }, 
    {   
        $project:{
            lname: 1,
            SSN: 1,
            pno : "$employee_works.pno",
        } 
    }
]);

这回答了你的问题吗?