Как разместить курсор в официальном драйвере 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))