kidoOooOoooOOom

IT系で開発やってます

mongodbでクエリログを全部みたい

setProfillingLevelを2にする。

$ mongo
> use myDb
switched to db myDb
> db.getProfilingLevel()
0
> db.setProfilingLevel(2)
{ "was" : 0, "slowms" : 1, "ok" : 1 }
> db.getProfilingLevel()
2
> db.system.profile.find().pretty()

これでquery log 見れる。
また、setProfillingLevelの第2引数で slow query の閾値を決める。

参考:
http://stackoverflow.com/questions/15204341/mongodb-logging-all-queries
http://docs.mongodb.org/manual/reference/method/db.setProfilingLevel/


MongoDBイン・アクション

MongoDBイン・アクション



追記
user_idや時間等でクエリを特定したい場合は下記のようなクエリで特定させればok

b.system.profile.find({"query.user_id":40447, "ts": {"$gt": ISODate("2015-05-27T12:18:35.435Z")}});