Найти все документы в коллекции с водителем Mongo Go - PullRequest
0 голосов
/ 26 февраля 2019

Я проверил ответ здесь , но это использует старый и необслуживаемый MGO.Как я могу найти все документы в коллекции, используя mongo-go-driver?

Я попытался пропустить фильтр nil, но он не возвращает никаких документов и вместо этого возвращает nil.Я также проверил документацию , но не увидел никаких упоминаний о возврате всех документов.Вот то, что я пробовал с вышеупомянутым результатом.

client, err := mongo.Connect(context.TODO(), "mongodb://localhost:27017")
coll := client.Database("test").Collection("albums")
if err != nil { fmt.Println(err) }
// we can assume we're connected...right?
fmt.Println("connected to mongodb")

var results []*Album
findOptions := options.Find()
cursor, err := coll.Find(context.TODO(), nil, findOptions)
if err != nil {
   fmt.Println(err) // prints 'document is nil'
}

Кроме того, я не совсем понимаю, почему мне нужно указывать findOptions, когда я вызываю функцию Find() в коллекции (или мне не нужно указывать?).

1 Ответ

0 голосов
/ 26 февраля 2019

Попробуйте передать пустое значение bson.D вместо nil:

cursor, err := coll.Find(context.TODO(), bson.D{})

Кроме того, FindOptions не является обязательным.

Отказ от ответственности: я никогда не использовал официальный драйвер,но есть несколько примеров на https://godoc.org/go.mongodb.org/mongo-driver/mongo

Похоже, что их учебник устарел: /

...