打印mongoDB集合Golang中的所有记录

时间:2019-01-03 20:11:43

标签: mongodb go

我有一个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 :(得分:1)

错误消息“文档为零”与Find()中的过滤器有关。更改行

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

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

应该工作。

答案 1 :(得分:0)

db.Collection("JobBacklog").find({},function(err,result){
console.log(result);
})