形成结构,用golang中的复合键读取bson对象

时间:2015-10-07 17:26:16

标签: mongodb go bson mgo

我有一个聚合查询(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世界的新手,这很简单,我无法弄清楚,请帮忙。

由于

1 个答案:

答案 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`
}