2 回答
TA贡献1780条经验 获得超1个赞
mgo 的作者 Gustavo Niemeyer 的回答:http : //grokbase.com/t/gg/mgo-users/152571ky82/how-to-show-query-log#20150209zwzki7mxjfigdzuqp245wskkl4
有两种方法可以处理此问题:
通过启用 MongoDB 日志记录
这独立于驱动程序(在本例中为 mgo),并且可以在 shell 中启用或通过 mgo 运行相应的命令:
http://docs.mongodb.org/manual/reference/method/db.setProfilingLevel/
通过启用 mgo 日志记录
您可以通过标准包的 log.New 函数创建一个 Logger 并将其提供给 mgo 的 SetLogger 函数来实现:
http://golang.org/pkg/log/#New , http://gopkg.in/mgo.v2#SetLogger
使用 mgo.SetDebug 增加详细程度:
因此,如果您已经设置了 Logger,请启用调试模式。
TA贡献1828条经验 获得超3个赞
我无法让 mgo 使用 SetLogger 和 SetDebug 来记录查询。相反,我通过编组到 json 字符串然后打印来解决这个问题:
q = bson.M{}
jsonString, _ := json.Marshal(q)
fmt.Printf("mgo query: %s\n", jsonString)
如果您需要调试查询,您还可以将其输出复制/粘贴到标准 mongo 客户端
- 2 回答
- 0 关注
- 164 浏览
添加回答
举报