gpt4 book ai didi

mongodb - 如何使用 ID 数组查询 mongodb

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

这是 golang。我的问题是按 ID 搜索集合

我想找到几个具有 ID 数组的集合

这是文档

/*document with name brands*/
{
first_id : "100"
second_id : "200"
name : "adidas",
description: "clothing"
}
{
first_id : "101"
second_id : "202"
name : "ferrari",
description: "auto"
}

这是集合模型

type Brand struct {
FirstID string `bson:"first_id" json:"first_id"`
SecondID string `bson:"second_id" json:"second_id"`
Name *string `bson:"name" json:"name"`
Description *string `bson:"description" json:"description"`
}

这个函数通过ID进行搜索,问题就在这里

func searchByID(collection *mongo.Collection) {

ids := [][]string{{"100", "200"}, {"101", "202"}}

filter2 := bson.M{"first_id,second_id": ids} // This is the problem

cursor, err := collection.Find(context.Background(), filter2)

brands := []Brand{}
if err == nil {
for cursor.Next(context.Background()) {
brand := Brand{}
cursor.Decode(&brand)
brands = append(brands, brand)
}
} else {
print(err.Error())
}

print("print the brands")
print(brands) //Result []

}

最佳答案

试试这个

filter2 := map[string]interface{}{
"first_id": map[string]interface{}{"$in": []string{"100", "200"}},
"second_id": map[string]interface{}{"$in": []string{"101", "202"}},}
cursor, err := collection.Find(context.Background(), interface{}(filter2))

关于mongodb - 如何使用 ID 数组查询 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57613065/

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