mongostat的insert query update delete getmore command字段值显示问题

1:在测试接口性能的时候,用mongostats查看了下mongo的性能,用的同一数据库的不同document,但字段值显示不符合预期,
第一个接口是find_one,document假设为d1,可以看到query有值,而command正常显示(如果是insert_one,insert的值也显示正常)

clipboard.png

第二个接口是find_one_and_update,并且upsert=true,document假设为d2,如果不存在就插入,这里的显示就比较怪了,query为0,并且插入为0,但是command值很大,d2也确实有数据增加了,并且有更新

clipboard.png
看了下官方文档并没有找到答案,谁有研究过吗?

阅读 3k
1 个回答

本质上所有的操作都是Command。但是为了更有意义一下,单独把insert/find/update/remove拿出来变成了insert/query/update/delete显示。而getmore是find的数据太多时分批取数据的命令。可以认为除了这些以外的所有操作都是command。
可以看一下findAndModify具体执行的是什么动作:

rs0:PRIMARY> db.test.findAndModify
function (args) {
    var cmd = {findandmodify: this.getName()};
    ...

可见对应的Command是findandmodify,并不在CRUD之列,所以被统一归为command。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进