sql >> Database teknologi >  >> NoSQL >> MongoDB

Projekt med Match i aggregat fungerer ikke i mongodb

Du glemte at projicere de felter, du bruger i $match og $group senere. Brug denne forespørgsel i stedet for en hurtig løsning:

Offer.aggregate([
{
    $project: {
        myyear: { $year: "$ending_date" },
        carer_id: 1,
        status: 1,
        ending_date: 1
    }
},
{ 
    $match: { 
        carer_id: req.params.carer_id,
        myyear: 2015,
        status: 3
    }
},
{
    $group: {
        _id: {
            year: { $year: "$ending_date" },
            month: { $month: "$ending_date" }
        }, 
        count: { $sum: 1 }
    }
}], 
function (err, res)
{
    if (err) {} // TODO handle error 
    console.log(res); 
});

Når det er sagt, Blakes Seven forklarede, hvordan man laver en bedre forespørgsel i sit svar. Jeg synes, du skal prøve at bruge hendes tilgang i stedet for.



  1. Brug af Redis som mellemliggende cache til REST API

  2. MongoDB insertMany()

  3. Spark på HBase med Spark-skal

  4. Hvordan får du adgang til et specifikt array-element i MongoDB-projektionsaggregering?