gpt4 book ai didi

mongodb - 如何使用GoLang mongodb驱动程序在mongodb中搜索文档,其中文档中的值为字符串,并且过滤器具有字符串 slice ?

转载 作者:行者123 更新时间:2023-12-01 22:23:32 27 4
gpt4 key购买 nike

我无法在标题中填入整个问题,所以这里是:

我有片字符串var temp = []string{"abc","efg","xyz"}
现在,我想在集合中搜索以上 slice 中每个元素的文档。

我知道我可以做这样的事情:

for _, str:=range temp{
collection.Find(context.background(), bson.M{"key":str})
}

但是如您所见,我将不得不触发许多查询。

那么有没有一种解决方案,我可以触发一个查询来查找所有这些文档
例如:
err = collection.Find(context.Background(), bson.M{"key":  MY_SLICE_OF_STRING})

最佳答案

您可以使用:

// I'm not sure what is your struct, so I use bson.Raw for this example
// but you can parse into your struct in the loop.
resultQuery := make([]bson.Raw, 0)
// you can use bson.M if you like,
// filter := bson.M{"key": bson.M{"$in": MY_SLICE_OF_STRING}}
filter := bson.D{
{
Key: "key",
Value: bson.E{
Key: "$in",
Value: MY_SLICE_OF_STRING,
},
},
}
ctx := context.background()
cursor, err := collection.Find(ctx, filter)
if err != nil {
//Handle your error.
}
if err == nil {
// you should put defer function to close your cursor,
defer func() {
cursor.Close(ctx)
}()
for cursor.Next(ctx) {
resultQuery = append(resultQuery, cursor.Current)
}
}

关于mongodb - 如何使用GoLang mongodb驱动程序在mongodb中搜索文档,其中文档中的值为字符串,并且过滤器具有字符串 slice ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61473436/

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