// Tests whether the geospatial search is stable under btree updates

var coll = db.getCollection( "jstests_geo_update_btree" )
coll.drop()

coll.ensureIndex( { loc : '2d' } )

var big = new Array( 3000 ).toString()

if (testingReplication) {
    coll.setWriteConcern({ w: 2 });
}

var parallelInsert = startParallelShell(
    "for ( var i = 0; i < 1000; i++ ) {" +
    "    var doc = { loc: [ Random.rand() * 180, Random.rand() * 180 ], v: '' }" +
    "    db.jstests_geo_update_btree.insert(doc);" +
    "}");

for ( i = 0; i < 1000; i++ ) {
    coll.update(
            { loc : { $within : { $center : [ [ Random.rand() * 180, Random.rand() * 180 ], Random.rand() * 50 ] } } },
            { $set : { v : big } }, false, true )

    if( i % 10 == 0 ) print( i );
}

parallelInsert();
