summaryrefslogtreecommitdiff
path: root/shell/collection.js
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2009-06-24 14:49:50 -0400
committerEliot Horowitz <eliot@10gen.com>2009-06-24 14:49:50 -0400
commit643cfc0888835f9d5f780c1080ec5a3cc2984bb5 (patch)
treea7b7e06581d9e739547db564dc7721c4d1c2081c /shell/collection.js
parent94266dbd04100982374a6e315509c47fb94cebba (diff)
downloadmongo-643cfc0888835f9d5f780c1080ec5a3cc2984bb5.tar.gz
nice error when trying to save DBQuery
Diffstat (limited to 'shell/collection.js')
-rw-r--r--shell/collection.js9
1 files changed, 9 insertions, 0 deletions
diff --git a/shell/collection.js b/shell/collection.js
index 88d25c9f269..1601bc0f640 100644
--- a/shell/collection.js
+++ b/shell/collection.js
@@ -86,13 +86,21 @@ DBCollection.prototype._massageObject = function( q ){
}
+
+DBCollection.prototype._validateObject = function( o ){
+ if ( o._ensureSpecial && o._checkModify )
+ throw "can't save a DBQuery object";
+}
+
DBCollection.prototype._validateForStorage = function( o ){
+ this._validateObject( o );
for ( var k in o ){
if ( k.indexOf( "." ) >= 0 )
throw "can't have . in field names [" + k + "]" ;
}
}
+
DBCollection.prototype.find = function( query , fields , limit , skip ){
return new DBQuery( this._mongo , this._db , this ,
this._fullName , this._massageObject( query ) , fields , limit , skip );
@@ -123,6 +131,7 @@ DBCollection.prototype.remove = function( t ){
DBCollection.prototype.update = function( query , obj , upsert ){
assert( query , "need a query" );
assert( obj , "need an object" );
+ this._validateObject( obj );
return this._mongo.update( this._fullName , query , obj , upsert ? true : false );
}