列出mongodb的最新操作

时间:2014-02-24 10:29:43

标签: node.js mongodb

我正在使用带有Node.js框架的MongoDB。

有一种奇怪的行为是某些文档没有插入到db中,但从orm的角度来看,err = null的回调中没有错误Collection.create()和{{1}的新文档返回。当我尝试在db中搜索_id时 - 找不到文档。

我尝试手动将新文档插入db并且成功了。

有没有办法可以从db的角度跟踪这些操作?有些命令列出最近的请求及其结果..?

2 个答案:

答案 0 :(得分:1)

您可以为所有操作启用分析:

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)

答案 1 :(得分:0)

在MongoDB中跟踪错误的最值得注意的方法是使用--diaglog选项:http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--diaglog,其级别可能为3,但1可能就足够了

正如@Neil所指出的那样,不幸的是,从2.6开始,这已被弃用。

目前唯一的方法是通过@Rauls回答写出MongoDB执行的所有操作,然后使用如下查询:

db.system.profile.find({op:{$in:['update', 'insert', 'remove']}});

并且可能调整用于分析的上限集合:http://docs.mongodb.org/manual/tutorial/manage-the-database-profiler/#profiler-overhead以捕获您想要的数量。