sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose - Hur grupperar man efter och befolkar?

Exempel med $lookup populate, lookup fylls som en array, därav $unwind.

Message.aggregate(
    [
        { "$match": { "to": user } },
        { "$sort": { "date": 1 } },
        { "$group": { 
            "_id": "from",
            "to": { "$first": "$to" },
            "message": { "$first": "$message" },
            "date": { "$first": "$date" },
            "origId": { "$first": "$_id" }
        }},
        { "$lookup": {
             "from": "users",
             "localField": "from",
             "foreignField": "_id",
             "as": "from"
        }},
        { "$lookup": {
             "from": "users",
             "localField": "to",
             "foreignField": "_id",
             "as": "to"
        }},
        { "$unwind": { "path" : "$from" } },
        { "$unwind": { "path" : "$to" } }
    ],
    function(err,results) {
        if (err) throw err;
        return results;
    }
)


  1. Redis - vad, varför och hur man använder Redis som en primär databas

  2. Ta bort en-en och en-många referenser - Mongoose

  3. Hur tar man bort ett dokument som refereras av ett id i mongoDB från php?

  4. Hur skiljer sig aerospike från andra nosql-databaser med nyckel-värden?