在MongoDB查询中计算结构片长度

I'm using MongoDB with Golang.

I have the following struct which my query result will write to:

var slacks []struct {
        Name        string `json:"name"`
        Description string `json:"description"`
        PostCount   int    `json:"postCount"`
    } `json:"slacks"`
}

I have documents in my collection which look like:

type slack struct {
    ID          bson.ObjectId   `bson:"_id"`
    Name        string          `bson:"name"`
    Description string          `bson:"description"`
    Posts       []post          `bson:"posts"`
}

My aim is to count the posts in each slack using a MongoDB query. I've got this so far:

db.C("slacks").Find(&bson.M{"name": &bson.RegEx{
    Pattern: ".*" + searchStr + ".*",
    Options: "i",
}}).Select(&bson.M{
    "name":        1,
    "description": 1,
    "$size":       "posts",
}).All(&slacks)

But {"$size": "posts"} doesn't do the trick.

How can I query the length of an array/slice of struct in a MongoDB query in Golang?