replica - mongodb show indexes




mongodb status of index creation job (3)

I'm using MongoDB and have a collection with roughly 75 million records. I have added a compound index on two "fields" by using the following command:

db.my_collection.ensureIndex({"data.items.text":1, "created_at":1},{background:true}).

Two days later I'm trying to see the status of the index creation. Running db.currentOp() returns {}, however when I try to create another index I get this error message:

cannot add index with a background operation in progress.

Is there a way to check the status/progress of the index creation job?

One thing to add - I am using mongodb version 2.0.6. Thanks!


At the mongo shell, type below command to show the current progress:

rs0:PRIMARY> db.currentOp(true).inprog.forEach(function(op){ if(op.msg!==undefined) print(op.msg) })

Index Build (background) Index Build (background): 1431577/55212209 2%

The following should print out index progress:

db
  .currentOp({"command.createIndexes": { $exists : true } })
  .inprog
  .forEach(function(op){ print(op.msg) })

outputs:

Index Build (background) Index Build (background): 5311727/27231147 19%

You could use currentOp with a true argument which returns a more verbose output, including idle connections and system operations.

db.currentOp(true)

... and then you could use db.killOp() to Kill the desired operation.







jobs