繁体   English   中英

如何在 mongoclient 连接选项中使用 mongocompact package

[英]How to use mongocompact package in mongoclient connect options

目前我已经在 mongo 客户端选项中使用了 NewRegistryBuilder( NewRegistryBuilder() ,我想以某种方式使用 mongocompact 中的NewRespectNilValuesRegistryBuilder NewRespectNilValuesRegistryBuilder()以便我可以将 [] 模型中的 nilvalues 设置为空数组。

目前我有类似下面的内容,对于 map 旧的 mgo 行为

tM := reflect.TypeOf(bson.M{})
registry := bson.NewRegistryBuilder().RegisterTypeMapEntry(bsontype.EmbeddedDocument, tM).Build()
clientOpts := options.Client().ApplyURI(URI).SetAuth(info).SetRegistry(registry)
client, err := mongo.Connect(ctx, clientOpts)

现在我想以某种方式合并NewRespectNilValuesRegistryBuilder().Build()并将其设置为 true 在相同的连接选项中,不知道该怎么做。 我看到的另一个问题是我无法在我的供应商目录中看到 mongocompat 注册表文件

我可以做两次这样的SetRegistry()吗? 像下面?

tM := reflect.TypeOf(bson.M{})
registry := bson.NewRegistryBuilder().RegisterTypeMapEntry(bsontype.EmbeddedDocument, tM).Build()
clientOpts := options.Client().ApplyURI(SOMEURI).SetAuth(info).SetRegistry(registry)
//not sure if the below line is of right usage ??
clientOpts.SetRegistry(NewRespectNilValuesRegistryBuilder().Build())
client, err := mongo.Connect(ctx, clientOpts)

谁能帮我这个?

相关问题在这里

我找到了解决这个问题的方法,我们需要做的就是

registry := mgocompat.NewRegistryBuilder().Build()
connectOpts := options.Client().ApplyURI(SOMEURI).SetAuth(info).SetRegistry(registry)

这样就可以兼顾这两个需求了,不用多说

tM := reflect.TypeOf(bson.M{})

因为这是包含在mgocompat中的默认行为

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM