sql >> Databáze >  >> NoSQL >> MongoDB

Použijte výsledek z předchozího dotazu v jiném dotazu v mongodb

Můžete použít agregaci s $match aby odpovídaly vašemu stavu a $lookup k mapování vašeho místního pole user vašemu user kolekce _id pole :

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

V JavaScriptu s mongoose můžete to udělat například pomocí :

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. Protokolování událostí s distribuovanou databází pro node.js (MongoDB?)

  2. Mongoide, jak objednat_podle asociace references_one (a následných asociací)?

  3. Jak mohu spustit soubor skriptu JS z Pymongo?

  4. Mangoose vyprší a vyvolá výjimku