sql >> データベース >  >> NoSQL >> MongoDB

全体としてMatchを使用したプロジェクトがmongodbで機能しない

    $matchで使用しているフィールドを投影するのを忘れました および$group 後で。簡単に修正するには、代わりに次のクエリを使用してください:

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

    そうは言っても、 Blakes Seven 彼女の答えでより良い質問をする方法を説明しました。代わりに彼女のアプローチを試してみるべきだと思います。



    1. MongoDBのドキュメントの2つのフィールドを比較します

    2. MongoDB-複数の$or操作

    3. 構文がありません; mongoexportのステートメントの前

    4. PyMongo-カーソルの反復