这是 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))