我不想在将结果转换为 JSON 之前使用结构。假设我有一些结果:
result, err := collection.Find(ctx, filter, options)
我可以在docs变量中收集所有结果,并在doc变量中收集最后的结果:
var doc bson.Raw
var docs []bson.Raw
for result.Next(ctx) {
document, err := result.DecodeBytes()
if err != nil {
log.Println(err)
}
doc = document
docs = append(docs, doc)
}
我可以在不使用任何结构的情况下轻松地将最后的结果转换为 JSON:
var jsonDoc bson.M
err = bson.Unmarshal(doc, &jsonDoc)
return jsonDoc
我无法将文档转换为 JSON 并因此在我的 Rest 服务器中使用。
2019-01-17 更新:
我在我的 REST 服务器中使用这样的结果:
user.GET("/booking/customer/:id", func(c *gin.Context) {
result := GetAllCustomerBookings(c.Param("id"))
c.JSON(http.StatusOK, result)
})
所以它不能通过值循环。问题:如何将 []bson.Raw 转换为 []byte 或 bson.Raw。让我们想象一下,现在我在数组的每个值中都有 {JSON}。我需要一个这样的 JSON:[{JSON}, {JSON}, ...]。
使用 nodejs 更容易,因为我可以在一个 JSON 文档中发送所有记录。Go 和 mongodb-go-driver 需要遍历所有记录,我不知道如何构建一个 JSON 文档。
Qyouu
qq_笑_17
相关分类