Docs 菜单
Docs 主页
/ / /
Go
/ /

查找多个文档

您可以使用 Find()方法查找集合中的多个文档。

提示

阅读用法示例,了解如何运行此示例。

此示例使用以下 Restaurant 结构作为 restaurants 集合中文档的模型:

type Restaurant struct {
ID primitive.ObjectID `bson:"_id"`
Name string
RestaurantId string `bson:"restaurant_id"`
Cuisine string
Address interface{}
Borough string
Grades interface{}
}

以下示例匹配 cuisine"Italian"restaurants 集合中的文档,并返回一个引用匹配文档的光标,然后将这些文档解压缩成一个切片:

coll := client.Database("sample_restaurants").Collection("restaurants")
filter := bson.D{{"cuisine", "Italian"}}
// Retrieves documents that match the query filter
cursor, err := coll.Find(context.TODO(), filter)
if err != nil {
panic(err)
}
// Unpacks the cursor into a slice
var results []Restaurant
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}

查看 完全可运行的示例

运行完整示例会打印以下文档,这些文档作为 Restaurant 结构体存储在 results 变量中:

// results truncated
...
{ ... , "Name" : "Epistrophy Cafe", "RestaurantId": "41117553", "Cuisine" : "Italian", ... },
{ ... , "Name" : "Remi", "RestaurantId": "41118090", "Cuisine" : "Italian", ... },
{ ... , "Name" : "Sant Ambroeus", "RestaurantId": "41120682", "Cuisine" : "Italian", ... },
...

要了解有关指定查询过滤器和处理潜在错误的更多信息,请参阅检索数据。

要了解有关查询运算符的更多信息,请参阅MongoDB 查询运算符参考文档。

  • find()

  • 游标

后退

查找文档