登录
首页 >  Golang >  Go问答

如何在 Golang 中使用 MongoDB 的 bson.M 生成多行字符串数据?

来源:stackoverflow

时间:2024-02-29 09:33:25 154浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《如何在 Golang 中使用 MongoDB 的 bson.M 生成多行字符串数据?》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

我正在使用 golang 创建一个电报机器人,我需要一些关于如何从 golang 中的函数检索多行字符串值的建议,该值与此 python 字符串具有相同的逻辑

answer = """1 john 95
2 sam 89
3 mike 72"""

我有一个创建 mongodb 请求的函数,该请求为我获取 bson.m 数据类型的数据。之后,我需要使用以下形式将此查询数据作为单个字符串值发送给用户:

msg := tgbotapi.newmessage(
    update.message.chat_id,
    answer,
)
bot.send(msg)

我真的不知道如何将这个 bson.m 数据转换为单个多行字符串。

我从函数中得到的 bson.m 响应:

[map[_id:ObjectID("62a4acf2a494a2814238c6e1") bandMember:John name:School12 points:95] 
map[_id:ObjectID("62a4acf2a494a2814238c6e2") bandMember:Sam name:School15 points:89] 
map[_id:ObjectID("62a4acf2a494a2814238c6e3") bandMember:Mike name:School7 points:72]]

我必须将它插入到“answer”的字符串变量中(参见上面的示例)

提前致谢!


正确答案


循环遍历文档并为每个文档打印一行。用换行符连接各行以获得最终结果。

var lines []string
for i, m := range data {
    lines = append(lines, fmt.Sprintf("%d %s %d", i+1, m["bandMember"], m["points"]))
}
result := strings.Join(lines, "\n")

以上就是《如何在 Golang 中使用 MongoDB 的 bson.M 生成多行字符串数据?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>