a = db.dbhasha; b = db.dbhashb; a.drop(); b.drop(); // debug SERVER-761 db.getCollectionNames().forEach( function( x ) { v = db[ x ].validate(); if ( !v.valid ) { print( x ); printjson( v ); } } ); function dbhash( mydb ) { var ret = mydb.runCommand( "dbhash" ); assert.commandWorked( ret, "dbhash failure" ); return ret; } function gh( coll , mydb ){ if ( ! mydb ) mydb = db; var x = dbhash( mydb ).collections[coll.getName()]; if ( ! x ) return ""; return x; } function dbh( mydb ){ return dbhash( mydb ).md5; } assert.eq( gh( a ) , gh( b ) , "A1" ); a.insert( { _id : 5 } ); assert.neq( gh( a ) , gh( b ) , "A2" ); b.insert( { _id : 5 } ); assert.eq( gh( a ) , gh( b ) , "A3" ); dba = db.getSisterDB( "dbhasha" ); dbb = db.getSisterDB( "dbhashb" ); dba.dropDatabase(); dbb.dropDatabase(); assert.eq( gh( dba.foo , dba ) , gh( dbb.foo , dbb ) , "B1" ); assert.eq( dbh( dba ) , dbh( dbb ) , "C1" ); dba.foo.insert( { _id : 5 } ); assert.neq( gh( dba.foo , dba ) , gh( dbb.foo , dbb ) , "B2" ); assert.neq( dbh( dba ) , dbh( dbb ) , "C2" ); dbb.foo.insert( { _id : 5 } ); assert.eq( gh( dba.foo , dba ) , gh( dbb.foo , dbb ) , "B3" ); assert.eq( dbh( dba ) , dbh( dbb ) , "C3" );