sql >> Databasteknik >  >> NoSQL >> MongoDB

Använd resultat från tidigare fråga i en annan fråga i mongodb

Du kan använda en aggregering med en $match för att matcha ditt tillstånd och $lookup för att mappa ditt lokala fält user till din user samling _id fält :

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

I Javascript, med mongoose du kan till exempel göra detta med :

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


  1. Hur tar jag bort dokument med Node.js Mongoose?

  2. Distinkta värden för en nyckel i ett underdokument MongoDB (100 miljoner poster)

  3. Hur associerar man egenskaper till socket.io-objekt i Redis Store?

  4. Meteor Mongo findOne returnerar odefinierad metod