MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwenden Sie das Ergebnis der vorherigen Abfrage in einer anderen Abfrage in Mongodb

Sie können eine Aggregation mit einem $match verwenden passend zu Ihrer Bedingung und $lookup um Ihr lokales Feld user zuzuordnen an Ihren user Sammlung _id Feld :

db.a.aggregate(
    [{
        $match: {
            "type": ObjectId("50ed90f5a70defef23000002"),
            "config.name": "alpha"
        }
    }, {
        $lookup: {
            from: "users",
            localField: "user",
            foreignField: "_id",
            as: "users"
        }
    }, {
        $unwind: "$users"
    }]);

In Javascript mit mongoose Sie können dies beispielsweise mit :

tun
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);
    });