Golang mgo json字符串名称一致性

del*_*los 5 go mongodb mgo

假设我们有一个像这样的Go结构

type Person struct {
    Name string `json:"name" bson:"name"`
}
Run Code Online (Sandbox Code Playgroud)

每当我想为这个人搜索一个字段时,在Mongo模块中mgo,我会做类似的事情userCollection.Find(bson.M{"name" : "John"})

我想知道的是,有没有办法Find像上面那样调用,但我不需要输入我正在寻找的字符串字段("name"在这种情况下).我想避免这种情况,因为如果我更改结构中的bson字段名称,我将不得不梳理代码库并在任何地方进行更改.

除了为每个struct的字段提供全局常量之外,有没有办法mgo使用struct自己的字段调用?

例如,可以调用的东西userCollection.Find(bson.M{Person.Name : "John"}),它将自动Person.Name在结构中找到字段("name"在这种情况下)并执行查询.