mgo 如何在运行的时候动态指定需要返回的哪些字段?

2017-07-03 18:18:32 +08:00
 billion

在 Go 语言中使用 mgo 的时候,一般需要先定义一个 Struct,例如:

type PrivacyInfo struct {
	Phone string        `bson:"phone"`
	Id    bson.ObjectId `json:"id" bson:"_id"`
}

这样就可以把_id 和 phone 都取出来。但是除了 phone 这一列外,还有可能取"_id"和"telephone"或者"_id"和"number"

需要取的数据是用户在程序运行的时候手动指定的。在这种情况下,应该如何才能只取需要的数据?

972 次点击
所在节点    Go 编程语言
3 条回复
zxiso
2017-07-03 18:45:37 +08:00
可以看看 mgo 的 select
billion
2017-07-03 19:02:19 +08:00
@zxiso 问题在于,拿到以后的数据,我如果用 bson.M 就会报错,用 bson.D 数据又不全
quella
2017-07-17 23:49:39 +08:00
@billion
db := session.DB("test")
collection := db.C("aaa")
result := make(map[bson.ObjectId]interface{})
iter := collection.Find(nil).Iter()
for iter.Next(&result) {
fmt.Println(result)
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/372745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX