summaryrefslogtreecommitdiff
path: root/node_modules/mongoose/docs/query.md
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2012-09-24 16:22:07 -0400
committerJules Laplace <jules@okfoc.us>2012-09-24 16:22:07 -0400
commit686106d544ecc3b6ffd4db2b665d3bc879a58d8c (patch)
treea5b5e50237cef70e12f0745371896e96f5f6d578 /node_modules/mongoose/docs/query.md
ok
Diffstat (limited to 'node_modules/mongoose/docs/query.md')
-rw-r--r--node_modules/mongoose/docs/query.md362
1 files changed, 362 insertions, 0 deletions
diff --git a/node_modules/mongoose/docs/query.md b/node_modules/mongoose/docs/query.md
new file mode 100644
index 0000000..d12892e
--- /dev/null
+++ b/node_modules/mongoose/docs/query.md
@@ -0,0 +1,362 @@
+
+Queries
+=================
+
+A `Query` is what is returned when calling many `Model`
+[methods](/docs/finding-documents.html). These `Query`
+objects provide a chaining api to specify search terms,
+cursor options, hints, and other behavior.
+
+## Query#where
+
+Lets you specify query terms with sugar.
+
+ query.where(path [, val])
+
+`path` is a valid document path. `val` is optional. Its useful to omit
+`val` when used in conjunction with other query methods. For example:
+
+ query
+ .where('name', 'Space Ghost')
+ .where('age').gte(21).lte(65)
+ .run(callback)
+
+In this case, `gte()` and `lte()` operate on the previous path if not
+explicitly passed. The above query results in the following query expression:
+
+ { name: 'Space Ghost', age: { $gte: 21, $lte: 65 }}
+
+## Query#$where
+
+Specifies the javascript function to run on MongoDB on each document scanned.
+See the [MongoDB docs](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D) for details.
+
+ Model.find().$where(fn)
+
+`fn` can be either a function or a string.
+
+## Query#$or, Query#or
+
+Specifies the [$or](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or) operator.
+
+ query.$or(array);
+
+`array` is an array of expressions.
+
+ query.or([{ color: 'blue' }, { color: 'red' }]);
+
+## Query#gt, Query#$gt
+
+Specifies a [greater than](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%3C%2C%3C%3D%2C%3E%2C%3E%3D) expression.
+
+ query.$gt(path, val);
+
+`$gt` is also one of the methods with extra chaining sugar: when only one
+argument is passed, it uses the path used the last call to `where()`. Example:
+
+ Model.where('age').$gt(21)
+
+Results in:
+
+ { age: { $gt: 21 }}
+
+## Query#gte, Query#$gte
+
+Specifies a [greater than or equal to](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%3C%2C%3C%3D%2C%3E%2C%3E%3D) expression.
+
+ query.$gte(path, val);
+
+`$gte` is also one of the methods with extra chaining sugar: when only one
+argument is passed, it uses the path used the last call to `where()`. Example:
+
+ Model.where('age').$gte(21)
+
+Results in:
+
+ { age: { $gte: 21 }}
+
+## Query#lt,Query#$lt
+
+Specifies a [less than](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%3C%2C%3C%3D%2C%3E%2C%3E%3D) expression.
+
+ query.$lt(path, val);
+
+`$lt` is also one of the methods with extra chaining sugar: when only one
+argument is passed, it uses the path used the last call to `where()`. Example:
+
+ Model.where('age').$lt(21)
+
+Results in:
+
+ { age: { $lt: 21 }}
+
+## Query#lte, Query#$lte
+
+Specifies a [less than or equal to](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%3C%2C%3C%3D%2C%3E%2C%3E%3D) expression.
+
+ query.$lte(path, val);
+
+`$lte` is also one of the methods with extra chaining sugar: when only one
+argument is passed, it uses the path used the last call to `where()`. Example:
+
+ Model.where('age').$lte(21)
+
+Results in:
+
+ { age: { $lte: 21 }}
+
+## Query#ne, Query#$ne, Query#notEqualTo
+
+Specifies the [$ne](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24ne) operator.
+
+ query.$ne(path, val);
+
+These methods have extra sugar in that
+when only one argument is passed, the path in the last call
+to `where()` is used. Example:
+
+ query.where('_id').ne('4ecf92f31993a52c58e07f6a')
+
+and
+
+ query.notEqualTo('_id', '4ecf92f31993a52c58e07f6a')
+
+both result in
+
+ { _id: { $ne: ObjectId('4ecf92f31993a52c58e07f6a') }}
+
+## Query#in, Query#$in
+
+Specifies the [$in](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in) operator.
+
+ query.$in(path, array)
+
+These methods have extra sugar in that
+when only one argument is passed, the path in the last call
+to `where()` is used.
+
+ query.where('tags').in(['game', 'fun', 'holiday'])
+
+results in
+
+ { tags: { $in: ['game', 'fun', 'holiday'] }}
+
+## Query#nin, Query#$nin
+
+Specifies the [$nin](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24nin) operator.
+
+ query.$nin(path, array)
+
+These methods have extra sugar in that
+when only one argument is passed, the path in the last call
+to `where()` is used.
+
+ query.where('games').nin(['boring', 'lame'])
+
+results in
+
+ { games: { $nin: ['boring', 'lame'] }}
+
+## Query#all, Query#$all
+
+Specifies the [$all](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24all) operator.
+
+ query.$all(path, array)
+
+These methods have extra sugar in that
+when only one argument is passed, the path in the last call
+to `where()` is used.
+
+ query.where('games').all(['fun', 'exhausting'])
+
+results in
+
+ { games: { $all: ['fun', 'exhausting'] }}
+
+## Query#regex, Query#$regex
+
+Specifies the [$regex](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions) operator.
+
+ query.regex('name.first', /^a/i)
+
+These methods have extra sugar in that
+when only one argument is passed, the path in the last call
+to `where()` is used.
+
+ query.where('name.first').$regex(/^a/i)
+
+results in
+
+ { 'name.first': { $regex: /^a/i }}
+
+## Query#size, Query#$size
+
+Specifies the [$size](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24size) operator.
+
+ query.$size(path, integer)
+
+These methods have extra sugar in that
+when only one argument is passed, the path in the last call
+to `where()` is used.
+
+ query.size('comments', 2)
+ query.where('comments').size(2)
+
+both result in
+
+ { comments: { $size: 2 }}
+
+## Query#mod, Query#$mod
+
+Specifies the [$mod](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24mod) operator.
+
+ var array = [10, 1]
+ query.mod(path, array)
+
+ query.mod(path, 10, 1)
+
+ query.where(path).$mod(10, 1)
+
+all result in
+
+ { path: { $mod: [10, 1] }}
+
+## Query#exists, Query#$exists
+
+Specifies the [$exists](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24exists) operator.
+
+ query.exists(path, Boolean)
+
+These methods have extra sugar in that
+when only one argument is passed, the path from the last call
+to `where()` is used.
+
+Given the following query,
+
+ var query = Model.find();
+
+the following queries
+
+ query.exists('occupation');
+ query.exists('occupation', true);
+ query.where('occupation').exists();
+
+all result in
+
+ { occupation: { $exists: true }}
+
+Another example:
+
+ query.exists('occupation', false)
+ query.where('occupation').exists(false);
+
+result in
+
+ { occupation: { $exists: false }}
+
+## Query#elemMatch, Query#$elemMatch
+
+Specifies the [$elemMatch](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24elemMatch) operator.
+
+ query.elemMatch(path, criteria)
+ query.where(path).elemMatch(criteria)
+
+Functions can also be passed so you can further use query sugar
+to declare the expression:
+
+ query.where(path).elemMatch(function)
+ query.elemMatch(path, function)
+
+In this case a `query` is passed as the only argument into the function.
+
+ query.where('comments').elemMatch(function (elem) {
+ elem.where('author', 'bnoguchi')
+ elem.where('votes').gte(5);
+ });
+
+Results in
+
+ { comments: { $elemMatch: { author: 'bnoguchi', votes: { $gte: 5 }}}}
+
+## Query#within, Query#$within
+
+## Query#box, Query#$box
+
+## Query#center, Query#$center
+
+## Query#centerSphere, Query#$centerSphere
+
+## Query#near, Query#$near
+
+Specifies the [$near](http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-Querying) operator.
+
+ var array = [10, 1]
+ query.near(path, array)
+
+ query.near(path, 10, 1)
+
+ query.where(path).$near(10, 1)
+
+all result in
+
+ { path: { $near: [10, 1] }}
+
+## Query#maxDistance, Query#$maxDistance
+
+Specifies the [$maxDistance](http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-Querying) operator.
+
+ query.where('checkin').near([40, -72]).maxDistance(1);
+
+results in
+
+ { checkin: { $near: [40, -72], $maxDistance: 1 }}
+
+## Query#select
+## Query#fields
+
+## Query#only
+## Query#exclude
+
+## Query#slice
+## Query#$slice
+
+## Query#populate
+
+// sorting
+## Query#sort
+## Query#asc
+## Query#desc
+
+// options
+## Query#limit
+## Query#skip
+## Query#maxscan
+## Query#snapshot
+## Query#batchSize
+## Query#slaveOk
+## Query#hint
+
+// executing
+## Query#find
+
+ query.find(criteria [, callback])
+
+## Query#findOne
+## Query#count
+## Query#distinct
+## Query#update
+## Query#remove
+
+## Query#run
+## Query#exec
+
+ query.run([callback])
+
+## Query#each
+
+## Query#stream
+
+Returns a [QueryStream](/docs/querystream.html) for the query.
+
+ Model.find({}).stream().pipe(writeStream)
+