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

golangを使用してmongodbで$lookupを使用してカウント値を取得するにはどうすればよいですか?

    したがって、集計は実際にはすべてのcommentを返します resultField内のドキュメント 結果の数を暗黙的に含むフィールドは、組み込みのlen()を使用してGoで長さを確認できるスライスです。 機能。

    長さ(commentの数)だけが必要なので ドキュメント)、そのため、この配列のサイズのみを取得する必要があります。そのために、 $addFieldsを使用できます。 resultFieldを置き換えるステージ 数値がこの配列の長さである配列。

    pipe := c.Pipe([]bson.M{
        {
            "$lookup": bson.M{
                "from":         "comment",
                "localField":   "_id",
                "foreignField": "post_id",
                "as":           "resultField",
            },
        },
        {
            "$addFields": bson.M{
                "resultField": bson.M{"$size": "$resultField"},
            },
        },
    })
    

    $addFieldsに注意してください ステージは$projectと同等です 入力ドキュメント内の既存のすべてのフィールドを明示的に指定し、新しいフィールドを追加するステージ。 MongoDBバージョン3.4以降でのみ使用可能です。




    1. 一部のOSでは、文字列をバッファとして再保存しますか?

    2. MongoDBの管理に関する考慮事項

    3. MongoDBをインメモリに構成できますか?

    4. マングース文字列からObjectIDへ