Печать всех записей в коллекции mongoDB Golang - PullRequest
0 голосов
/ 03 января 2019

У меня есть коллекция MongoDB collection := db.Collection("JobBacklog"), которую я пытаюсь распечатать в консоли.БД находится в контейнере Docker и управляет им с помощью скрипта, написанного на Go.

Из того, что я смог найти из mongo-go-driver https://godoc.org/github.com/mongodb/mongo-go-driver/mongo, есть способ сделать это, но мой код продолжает возвращаться document is nil, когда я знаю, что это не так,

Это мой код, который я использую, чтобы попытаться перебрать коллекцию с именем JobBacklog

cur, err := collection.Find(context.Background(), nil)
        if err != nil {
            log.Fatal(err)
        }
        defer cur.Close(context.Background())
        for cur.Next(context.Background()) {
            raw, err := cur.DecodeBytes()
            if err != nil {
                log.Fatal(err)
            }
            //print element data from collection
            fmt.Println("Element", raw, x)
        }
        if err := cur.Err(); err != nil {
            log.Fatal(err)
        }

Я ожидаю, что она распечатает содержимое коллекции:

_id:5c2d34e36657ba3238374f9a
UID:"ALDK"
PROFILE:"B"
STATUS:"PENDING"
DEVICE:"2.2.2.2"

Это пример записи в базе данных JobBacklog.

Полное раскрытие, конечная цель для этого состоит в том, чтобы найти последнюю запись, которая была добавлена ​​в коллекцию, но мне нужно иметь возможность сначала прочитать коллекцию.

Я знаю, что я подключен к БД, я могу добавлять / находить / удалять записи, но распечатка всего в коллекции ускользает от меня.Любая помощь приветствуется.Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Сообщение об ошибке «document is nil» о фильтре в Find (). Измените строку

cur, err := collection.Find(context.Background(), nil)

на

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

должно работать.

0 голосов
/ 04 января 2019
db.Collection("JobBacklog").find({},function(err,result){
console.log(result);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...