gpt4 book ai didi

mongodb - 如何实时查看 MongoDB 原始查询?

转载 作者:可可西里 更新时间:2023-11-01 09:52:14 25 4
gpt4 key购买 nike

我正在使用 Mongoid,但它提供的查询日志非常抽象,它与 ActiveRecord 相去甚远,后者在显示原始 SQL 查询方面表现出色。我还检查了 mongodb 日志文件,它显示如下查询:

query stock_system.companies query: { $query: { _id: ObjectId('53398f796a756e0e98040000') }, $orderby: { _id: 1 } } ntoreturn:1 idhack:1 keyUpdates:0 locks(micros) r:40 reslen:2022 0ms

但它仍然是抽象的,不显示嵌套文档中的查询

我很难调试查询。我尝试使用配置文件级别 2 和 slowms 设置为 -1 来启动 mongod。但它不起作用,有什么提示吗?

#####EDIT:登录嵌套文档查询示例:

我正在尝试在产品嵌套模型中进行搜索,如下所示:

current_user.company.products.where({name: /\A#{params[:name]}/}).limit(5)

并且该查询根本没有记录。它显示的是:

Processing by AjaxController#products as JSON
Parameters: {"name"=>"meu", "page"=>"1", "_"=>"1397053974337"}
MOPED: 127.0.0.1:27017 QUERY database=stock_system collection=users selector={"$query"=>{"_id"=>BSON::ObjectId('532a31376a756e29c9000000')}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.5320ms
MOPED: 127.0.0.1:27017 QUERY database=stock_system collection=companies selector={"$query"=>{"_id"=>BSON::ObjectId('532a31376a756e29c9020000')}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.8050ms
Completed 200 OK in 4ms (Views: 0.2ms)

这是针对当前用户和公司的查询,而不是公司内嵌的产品。我需要查看产品原始查询以找出该查询的问题所在。

最佳答案

确保您正确设置了分析级别。应该是 db.setProfilingLevel(2) 来记录所有事件。响应应如下所示:{ "was": 0, "slowms": 100, "ok": 1 }

完成后,您应该能够查询数据库中的 system.profile 集合以获取所有事件的日志 - db.system.profile.find()

http://docs.mongodb.org/manual/reference/method/db.setProfilingLevel/

关于mongodb - 如何实时查看 MongoDB 原始查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com