Что я должен сохранить метод setLimit (int64) для отображения всех записей в коллекциях - PullRequest
1 голос
/ 24 февраля 2020

В методе setLimit (), что я должен сохранить, чтобы получить все записи в данных

пакетов - используется: go .mongodb.org / mon go -драйвер / bson

go .mongodb.org / mon go -драйвер / mon go

go .mongodb.org / mon go -драйвер / mongo / options

findOption := options.Find()

findOption.SetLimit(?)

var res1 []Person

cur, err := collection.Find(context.TODO(), bson.D{}, findOption)

if err != nil {
    log.Fatal(err)
}

for cur.Next(context.TODO()) {

    var elem Person

    err := cur.Decode(&elem)

    if err != nil {
        log.Fatal(err)
    }

    res1 = append(res1, elem)
}

if err := cur.Err(); err != nil {
    log.Fatal(err)
}

// Close the cursor once finished
cur.Close(context.TODO())

fmt.Printf("Found multiple documents (array of pointers): %+v\n", res1)

1 Ответ

3 голосов
/ 24 февраля 2020

Проще всего не звонить FindOptions.SetLimit(), если вы не хотите ограничивать количество результатов. Если вы не передаете FindOptions, или вы передаете тот, где вы не установили лимит, по умолчанию результаты не ограничены.

Если у вас есть значение FindOptions, где был установлен лимит ранее вы могли установить предел 0, чтобы "отменить" ограничение.

Цитирование из FindOptions.Limit:

// The maximum number of documents to return. The default value is 0, which means that all documents matching the
// filter will be returned. A negative limit specifies that the resulting documents should be returned in a single
// batch. The default value is 0.
Limit *int64
...