我正在使用MongoDB和Node.js框架。在mongodb上列出最近的操作
有一種怪異的行爲,一些文件沒有得到插入分貝,雖然從圖ORM的觀點沒有錯誤:err = null
在Collection.create()
回調和新鮮的文件與_id
返回。當我嘗試在db中搜索_id
時 - 找不到文檔。
我試圖手動插入新的文檔到數據庫,它是成功的。
有沒有辦法從db的角度來追蹤這些操作?一些命令列出最近的請求及其結果..?
我正在使用MongoDB和Node.js框架。在mongodb上列出最近的操作
有一種怪異的行爲,一些文件沒有得到插入分貝,雖然從圖ORM的觀點沒有錯誤:err = null
在Collection.create()
回調和新鮮的文件與_id
返回。當我嘗試在db中搜索_id
時 - 找不到文檔。
我試圖手動插入新的文檔到數據庫,它是成功的。
有沒有辦法從db的角度來追蹤這些操作?一些命令列出最近的請求及其結果..?
內MongoDB的跟蹤誤差的最顯着的方法是使用--diaglog
選項:http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--diaglog與3
也許水平,但1
也許夠你。
正如@Neil所指出的那樣,不幸的是2.6版已經被棄用了。目前
的唯一方法是寫出來的所有操作MongoDB的執行,通過@Rauls答案,然後用一個查詢,如:
db.system.profile.find({op:{$in:['update', 'insert', 'remove']}});
,並可能調整用於分析的上限集合:http://docs.mongodb.org/manual/tutorial/manage-the-database-profiler/#profiler-overhead捕捉你想要的金額。
您可以爲所有操作啓用分析:
db.setProfilingLevel(2)
然後,看看system.profile
收集,看看有什麼情況發生。 system.profile
是可以作爲任何其他集合進行搜索的封頂集合。剖析可以吵,最終你應該改變system.profile
集合的大小
db.setProfilingLevel(0)
db.system.profile.drop()
db.createCollection("system.profile", { capped: true, size:4000000 })
db.setProfilingLevel(2)
注意,目前這會造成很多噪音,需要用一個查詢來過濾OP所尋找的OP以及系統的封頂集合。配置文件可能需要根據捕獲的長度調整大小 – Sammaye
@Sammaye:注意,謝謝 –
的--diaglog選項被認爲是已廢棄](http://docs.mongodb.org/master/release-notes /2.6/#diaglog-option-for-mongod-deprecated)從開發版本2.5.5開始,並將在未來的版本中刪除。所以推薦使用它並不是一個好的選擇。 –
@NeilLunn太糟糕了,它比單獨的分析級別產生更好的統計數據 – Sammaye
分析是首選選項,並且預計會進行改進。 –