var getLatestProfileDoc = function() {
|
return db.system.profile.find().sort({ts: -1}).limit(1).next();
|
}
|
|
// Confirm test is run against MMAPv1
|
use admin;
|
assert.eq(db.runCommand({ getCmdLineOpts: 1 }).parsed.storage.engine, "mmapv1");
|
|
|
db.test.drop();
|
db.test.ensureIndex({a: 1});
|
|
db.test.insert({a: 1, b: 1});
|
|
// In place document update
|
db.setProfilingLevel(2);
|
db.test.update({}, {$inc: {a: 1}});
|
db.setProfilingLevel(0);
|
var profileDoc = getLatestProfileDoc();
|
assert(!profileDoc.nmoved);
|
assert.eq(profileDoc.keyUpdates, 1, tojson(profileDoc));
|
|
// Update that triggers document move
|
db.setProfilingLevel(2);
|
db.test.update({}, {$inc: {a: 1}, $set: {c: Array(1024).toString()}});
|
db.setProfilingLevel(0);
|
var profileDoc = getLatestProfileDoc();
|
assert.eq(profileDoc.nmoved, 1, tojson(profileDoc));
|
assert.eq(profileDoc.keyUpdates, 1, tojson(profileDoc));
|