如何在官方mongo-go-driver中分页游标

时间:2018-08-21 21:15:12

标签: mongo-go

在mongo-go-driver中检查接口Cursor:

https://github.com/mongodb/mongo-go-driver/blob/master/mongo/cursor.go#L37

没有LimitSkip函数。

我如何分页结果?

我认为尝试SortCount时也会遇到同样的问题。

有办法吗?或者,这是否还没有在官方驱动程序中实现?

1 个答案:

答案 0 :(得分:5)

您可以在软件包options中检入的大多数查找选项 https://github.com/mongodb/mongo-go-driver/tree/master/mongo/options

client, err := mongo.Connect(context.Background(), "mongodb://localhost:27017", nil)
// check err
db := client.Database("examples")

coll := db.Collection("inventory")
{
    cursor, err := coll.Find(
        context.Background(),
        options.SetSort(bson.NewDocument(bson.EC.Int64("x", 1))),
        options.SetLimit(30),
        options.SetSkip(5),
    )

    // cursor decode...

}

使用过滤器计数

count, err :=coll.Count(context.Background(),bson.NewDocument(bson.EC.String("foo", "bar")))

从文档元数据中计数

count, err := coll.EstimatedDocumentCount(context.Background(),countopt.MaxTimeMs(100))

编辑:

Mongo-go-driver稳定版v1.0.0已发布,他们将BSON库分离了,请使用官方documentation