我有一个聚合查询(mongodb,使用mgo库),它通过复合键对文档进行分组。我想将这个聚合的结果添加到另一个集合中(我已经使用了聚合阶段这个聚合的结果,它显示了正确的结果但我不能用,因为它每次运行查询时都会覆盖记录)。
小组阶段的片段:基本上我是通过复合,a,b和c的键进行分组。
"$group": bson.M{
"_id": bson.M{
"a": "$a",
"b": "$b",
"c": "$c",
},
x: "x",
y: "y" ..etc
我已经用out阶段测试了聚合/分组等,它给出了预期的结果。
要添加到另一个集合,我想将每个bson对象作为结构读取,然后插入另一个集合。问题是如何定义组合键的对象。
例如:
type test struct {
Id string `bson:"_id"` <---- how to define composite key that I want to use as key in new collection
X string `bson:x`
Y string `bson:y`
}
我希望我的问题很明确,如果需要回答这个问题,我可以添加更多信息。我是golang / bson / mongo世界的新手,这很简单,我无法弄清楚,请帮忙。
由于
答案 0 :(得分:3)
想出来,如果有人遇到同样的问题,请回答帮助。
您可以为复合键创建另一个结构。
type key struct {
a string
b string
c int
}
type test struct {
Id key `bson:"_id"` <---- how to define composite key that I want to use as key in new collection
X string `bson:x`
Y string `bson:y`
}