golang/mongodb聚合查询中的复合文字中缺少类型

golang/mongodb聚合查询中的复合文字中缺少类型,go,aggregate,Go,Aggregate,我想在golang中编写mongo查询。我的mongo问题是- aggregate([ {$match: {$and : [ {"stream" : "CS"}, {"semester" : "sem3"}, {"section" : "A"} ] }}, {$unwind: '$atndnc'}, { $group: { _id:{rollno: "$at

我想在golang中编写mongo查询。我的mongo问题是-

aggregate([
    {$match: {$and :
        [
            {"stream" : "CS"},
            {"semester" : "sem3"},
            {"section" : "A"}
        ]

    }},
    {$unwind:  '$atndnc'},
    { $group: { _id:{rollno: "$atndnc.rollno",attend:"$atndnc.attend"},count: { $sum: 1 }}},
    {  $project:
    {  _id: '$_id.rollno',
        'attend' : '$_id.attend',
        'count' : '$count'
    }}
])
我的密码是-

cond:=[]bson.M{
    bson.M{"$match": bson.M{"$and ":[]interface{}{
        bson.M{"stream" : srchobj.Stream},
        bson.M{"semester" : srchobj.Semester},
        bson.M{"section" : srchobj.Section},
        bson.M{"college_id":srchobj.College_id},
        bson.M{"date":bson.M{"$gt":srchobj.Startdate,"$lt":srchobj.Enddate}}}}},
    bson.M{"$unwind":  "$atndnc"},
    bson.M{"$group":bson.M{"_id":{"rollno":bson.M{"$atndnc.rollno"},"attend":bson.M{"$atndnc.attend"}},"count":bson.M{"$sum":1}}},
    bson.M{"$project":bson.M{"_id":"$_id.rollno","count":"$_id.count"}}}
但它在中给出了错误“复合文字中缺少类型”


在这一行中。我现在该怎么办?

在$group查询中,一组大括号上缺少类型声明:
{“rollno”:bson.M{“$atndnc.rollno”},“出席”:bson.M{“$atndnc.attain”}

我认为应该是:
bson.M{“rollno”:bson.M{“$atndnc.rollno”},“出席”:bson.M{“$atndnc.attent”:nil}


还有一些其他的初始化方法,比如只使用字符串键进行初始化(请记住,bson.M只是map[string]interface{}

的别名,感谢您的支持。通过这样做,我获得了所需的输出

cond :=[]bson.M{
    bson.M{"$match": bson.M{
            "stream" : srchobj.Stream,
            "semester" : srchobj.Semester,
            "section" : srchobj.Section,
            "college_id":srchobj.College_id,
            "date":bson.M{
                "$gt":srchobj.Startdate,
                "$lt":srchobj.Enddate},
     },
    },
    bson.M{"$unwind":  "$atndnc"},
    bson.M{"$group":bson.M{
        "_id":bson.M{
            "rollno":"$atndnc.rollno",
            "attend":"$atndnc.attend",
            "name":"$atndnc.name",
            },
        "count":bson.M{"$sum":1},
        },
    },
    bson.M{"$project":bson.M{
        "rollno":"$_id.rollno",
        "name":"$_id.name",
        "count":"$count",
        "attend":"$_id.attend",
        },
    },
    bson.M{"$sort":bson.M{"rollno":1}},
}
cond :=[]bson.M{
    bson.M{"$match": bson.M{
            "stream" : srchobj.Stream,
            "semester" : srchobj.Semester,
            "section" : srchobj.Section,
            "college_id":srchobj.College_id,
            "date":bson.M{
                "$gt":srchobj.Startdate,
                "$lt":srchobj.Enddate},
     },
    },
    bson.M{"$unwind":  "$atndnc"},
    bson.M{"$group":bson.M{
        "_id":bson.M{
            "rollno":"$atndnc.rollno",
            "attend":"$atndnc.attend",
            "name":"$atndnc.name",
            },
        "count":bson.M{"$sum":1},
        },
    },
    bson.M{"$project":bson.M{
        "rollno":"$_id.rollno",
        "name":"$_id.name",
        "count":"$count",
        "attend":"$_id.attend",
        },
    },
    bson.M{"$sort":bson.M{"rollno":1}},
}