go查询所有mongodb文档,并倒序分页
时间: 2024-09-28 11:04:16 浏览: 35
Java操作MongoDB模糊查询和分页查询
5星 · 资源好评率100%
在Go语言中,要查询MongoDB数据库中的所有文档并按逆序分页,你可以使用`go-mongodb-driver`这个库,它提供了一个方便的接口来操作MongoDB。下面是一个简单的示例:
```go
package main
import (
"context"
"fmt"
"log"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
// 连接到MongoDB服务器
clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") // 替换为你的连接信息
client, err := mongo.Connect(context.TODO(), clientOptions)
if err != nil {
log.Fatal(err)
}
defer client.Disconnect(context.TODO())
// 获取集合实例(假设我们连接到名为"myCollection"的集合)
collection := client.Database("myDatabase").Collection("myCollection")
// 分页查询,设置默认的限制(例如10条)和偏移量(表示从哪一条开始取),这里使用反向排序
var pageSize int = 10
skip := pageSize * (page - 1) // page是从1开始的
sortDesc := bson.D{{"_id", -1}} // 表示降序排列,这里是按照_id字段
cursor, err := collection.Find(context.TODO(),
bson.M{}, // 查询条件(如果需要添加特定条件,则在此处指定)
options.Find()
.SetLimit(pageSize)
.SetSort(sortDesc)
.Skip(skip))
if err != nil {
log.Fatal(err)
}
// 遍历并打印结果
for cursor.Next(context.TODO()) {
var doc interface{}
err := cursor.Decode(&doc)
if err != nil {
log.Fatal(err)
}
fmt.Println(doc)
}
if err := cursor.Err(); err != nil {
log.Fatal(err)
}
}
//
阅读全文