Как разместить курсор в официальном драйвере mongo-go

Проверка интерфейса Cursor в mongo-go-driver:

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

Нет никаких Limit или же Skip функции.

Как я могу пейджировать результаты?

Я думаю, что при попытке Sort или же Count,

Есть ли способ? или это просто еще не реализовано в официальном драйвере?

1 ответ

Большинство вариантов поиска вы можете проверить в пакете 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))
Другие вопросы по тегам