gpt4 book ai didi

go - 如何使用 mongo-go-driver 0.2.0 在 bson.A 中使用 slice 的元素

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:49 25 4
gpt4 key购买 nike

如何使用给定的 slice 生成 bson.A?我需要它来进行动态查询。

我正在从 mongo-go-driver alpha 升级到 beta 0.2.0,这已成为我项目中的一个重大变化,因为现在 API 不同了。

https://godoc.org/github.com/mongodb/mongo-go-driver/bson

input := []string{"bar", "world"}
//expected output
bson.A{"bar", "world"}

最佳答案

不确定您是否找到了答案,但我昨天为此奋斗了一个多小时。

我不确定这会解决您的问题。我假设您正在尝试根据您的输入构建一个过滤器。最终我在尝试传递数组时没有使用 bson.A。

情况:尝试构建一个过滤器,其中一个 bson.D 元素是一个数组。

认为我需要使用 bson.A。

我的初步假设:

return bson.D{
{"uuid", request.Uuid},
{"action", request.Action},
{"resource", bson.D{{"$in", bson.A{resourceStrings}}}},
}

其中 resourceStrings 是一段字符串。

然而,这最终会构建一个看起来像过滤器:[ {资源 [{$in [[Orgs::Organizations::1 Orgs::Organizations::* Orgs::Organizations Orgs::*]]}]}]

*请注意,$in 方法在这里查找数组的数组。

我们想要的是:过滤器:[{uuid 80} {action UpdateOrganization} {resource [{$in [Orgs::Organizations::1 Orgs::Organizations::* Orgs::Organizations Orgs::*]}]}]

如果我们传入字符串的文字数组,它将起作用...

return bson.D{
{"uuid", request.Uuid},
{"action", request.Action},
{"resource", bson.D{{"$in", bson.A{"Orgs::Organizations::1", "Orgs::Organizations::*", "Orgs::Organizations", "Orgs::*"}}}},
}

经过反复试验,我发现 bson.D 会直接接受数组。

最终我就这样解决了问题

return bson.D{
{"uuid", request.Uuid},
{"action", request.Action},
{"resource", bson.D{{"$in", resourceStrings}}},
}

从字面上看你的例子 - 如果你只是想将一个数组编码到一个 bson.A 尝试:

bson.A{input}

关于go - 如何使用 mongo-go-driver 0.2.0 在 bson.A 中使用 slice 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com