mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
Merge branch 'master' of git@github.com:mongodb/mongo
This commit is contained in:
commit
fff94a80ac
@ -563,11 +563,11 @@ namespace mongo {
|
||||
BSONObj temp = b.done();
|
||||
where->scope->setObject( "obj" , &temp );
|
||||
}*/
|
||||
int err = where->scope->invoke( where->func , BSONObj() );
|
||||
int err = where->scope->invoke( where->func , BSONObj() , 1000 * 60 );
|
||||
if ( err == -3 ) { // INVOKE_ERROR
|
||||
stringstream ss;
|
||||
ss << "error on invocation of $where function:\n"
|
||||
<< where->scope->getString( "error" );
|
||||
<< where->scope->getError();
|
||||
uassert(ss.str(), false);
|
||||
return false;
|
||||
} else if ( err != 0 ) { // ! INVOKE_SUCCESS
|
||||
|
@ -3,7 +3,7 @@
|
||||
#---------------------------------------------------------------------------
|
||||
DOXYFILE_ENCODING = UTF-8
|
||||
PROJECT_NAME = MongoDB
|
||||
PROJECT_NUMBER = 0.9.1
|
||||
PROJECT_NUMBER = 0.9.2
|
||||
OUTPUT_DIRECTORY = docs
|
||||
CREATE_SUBDIRS = NO
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
23
jstests/count2.js
Normal file
23
jstests/count2.js
Normal file
@ -0,0 +1,23 @@
|
||||
t = db.count2;
|
||||
t.drop();
|
||||
|
||||
for ( var i=0; i<1000; i++ ){
|
||||
t.save( { num : i , m : i % 20 } );
|
||||
}
|
||||
|
||||
assert.eq( 1000 , t.count() , "A" )
|
||||
assert.eq( 1000 , t.find().count() , "B" )
|
||||
assert.eq( 1000 , t.find().toArray().length , "C" )
|
||||
|
||||
assert.eq( 50 , t.find( { m : 5 } ).toArray().length , "D" )
|
||||
assert.eq( 50 , t.find( { m : 5 } ).count() , "E" )
|
||||
|
||||
assert.eq( 40 , t.find( { m : 5 } ).skip( 10 ).toArray().length , "F" )
|
||||
assert.eq( 50 , t.find( { m : 5 } ).skip( 10 ).count() , "G" )
|
||||
assert.eq( 40 , t.find( { m : 5 } ).skip( 10 ).countReturn() , "H" )
|
||||
|
||||
assert.eq( 20 , t.find( { m : 5 } ).skip( 10 ).limit(20).toArray().length , "I" )
|
||||
assert.eq( 50 , t.find( { m : 5 } ).skip( 10 ).limit(20).count() , "J" )
|
||||
assert.eq( 20 , t.find( { m : 5 } ).skip( 10 ).limit(20).countReturn() , "K" )
|
||||
|
||||
assert.eq( 5 , t.find( { m : 5 } ).skip( 45 ).limit(20).countReturn() , "L" )
|
@ -116,6 +116,18 @@ DBQuery.prototype.count = function(){
|
||||
throw "count failed: " + tojson( res );
|
||||
}
|
||||
|
||||
DBQuery.prototype.countReturn = function(){
|
||||
var c = this.count();
|
||||
|
||||
if ( this._skip )
|
||||
c = c - this._skip;
|
||||
|
||||
if ( this._limit > 0 && this._limit < c )
|
||||
return this._limit;
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
/**
|
||||
* iterative count - only for testing
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user