为了账号安全,请及时绑定邮箱和手机立即绑定

通过始终保留相同的顺序将映射编入 BSON

通过始终保留相同的顺序将映射编入 BSON

Go
ABOUTYOU 2022-08-30 22:03:15
我有一个地图,它是我从一段字符串创建的。然后我想将其封送为bson格式,作为索引插入mongodb。但是,由于地图在Golang中的创建方式,我每次都会得到不同的索引顺序(有时是它的abc,有时是它的bac,cba...)。如何确保创建的封送索引始终按相同的顺序排列?fields := ["a", "b", "c"] compoundIndex := make(map[string]int)for _, field := range fields {    compoundIndex[field] = 1}data, err := bson.Marshal(compoundIndex)fmt.Println(string(data)) // This output is always in a different order than the desired abc
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

使用文档 bson 的有序表示形式。D:


var compoundIndex bson.D

for _, field := range fields {

    compoundIndex = append(compoundIndex, bson.E{Key: field, Value: 1})

}

data, err := bson.Marshal(compoundIndex)

fmt.Println(string(data)) // The elements are always printed in the same order.

在 Playground 上运行一个示例。


查看完整回答
反对 回复 2022-08-30
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号