MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Use o resultado da consulta anterior em outra consulta no mongodb


Você pode usar uma agregação com um $match para corresponder à sua condição e $lookup para mapear seu campo local user para seu user coleção _id campo :
db.a.aggregate(
    [{
        $match: {
            "type": ObjectId("50ed90f5a70defef23000002"),
            "config.name": "alpha"
        }
    }, {
        $lookup: {
            from: "users",
            localField: "user",
            foreignField: "_id",
            as: "users"
        }
    }, {
        $unwind: "$users"
    }]);

Em Javascript, com mongoose por exemplo, você pode fazer isso com:
YourModel.aggregate(
    [{
        $match: {
            "type": ObjectId("50ed90f5a70defef23000002"),
            "config.name": "alpha"
        }
    }, {
        $lookup: {
            from: "users",
            localField: "user",
            foreignField: "_id",
            as: "users"
        }
    }, {
        $unwind: "$users"
    }],
    function(err, result) {
        console.log("lastname : " + result.users.lastname);
    });