查询选择器

$eq$and是默认行为,通常省略不写。

比较 Comparison

$eq

匹配等于指定值的值。
Matches values that are equal to a specified value

$ne

匹配所有不等于指定值的值。
Matches all values that are not equal to a specified value.

$gt

匹配大于指定值的值。
Matches values that are greater than a specified value

$gte

匹配大于或等于指定值的值。
Matches values that are greater than or equal to a specified value

$lt

匹配小于指定值的值。
Matches values that are less than a specified value.

$lte

匹配小于或等于指定值的值。
Matches values that are less than or equal to a specified value.

$in

匹配数组中指定的任何值。
Matches any of the values specified in an array.

$nin

不匹配数组中指定的任何值。
Matches none of the values specified in an array.

逻辑 Logical

$and

使用逻辑AND连接查询子句,返回与这两个子句条件匹配的所有文档。
Joins query clauses with a logical AND returns all documents that match the conditions of both clauses.

$not

反转查询表达式的效果,并返回与查询表达式匹配的文档。
Joins query clauses with a logical OR returns all documents that match the conditions of either clause.

$or

用逻辑OR连接查询子句,返回与任一子句条件匹配的所有文档。
Inverts the effect of a query expression and returns documents that do not match the query expression.

$nor

用逻辑NOR连接查询子句,返回所有不能匹配这两个子句的文档。
Joins query clauses with a logical NOR returns all documents that fail to match both clauses.

元素 Element

$exists

匹配具有指定字段的文档。
Matches documents that have the specified field
{ "x.name": { "$exists": true } }

$type

如果字段是指定类型,则选择文档。
Selects documents if a field is of the specified type:  double/string/object/array/objectId/bool/date/null/regex/int/timestamp/long/decimal/binData
{ "zipCode" : { "$type": "double" }

以下不常用

评估 Evaluation

$mod

对字段的值执行模运算并选择具有指定结果的文档。
Performs a modulo operation on the value of a field and selects documents with a specified result.

$regex

选择值与指定的正则表达式匹配的文档。
Selects documents where values match a specified regular expression.
{ "name": { "$regex": "acme.*corp", "$options": "i", "$nin": [ "acmeblahcorp" ] } }

$text

执行文本搜索。
Performs a text search on the content of the fields indexed with a text index
{ "$text": { "$search:" "bake coffee cake" } } 匹配上其中一个即可
{ "$text": { "$search": "coffee -shop" } } 须包含coffee,但不包含shop

$where

匹配满足JavaScript表达式的文档。
Matches documents that satisfy a JavaScript expression.
{ "active": true, "$where": "this.credits - this.debits < 0" } $where性能差, 须带上其他标准query以改善

地理空间 Geospatial

$geoIntersects

选择与GeoJSON几何形状相交的几何形状。
Selects geometries that intersect with a GeoJSON geometry

$geoWithin

选择边界GeoJSON几何内的几何。
Selects geometries within a bounding GeoJSON geometry.

$near

返回点附近的地理空间对象。需要地理空间索引。
Returns geospatial objects in proximity to a point. Requires a geospatial index.

$nearSphere

返回球体上某个点附近的地理空间对象。需要地理空间索引。
Returns geospatial objects in proximity to a point on a sphere. Requires a geospatial index.

数组 Array

$all

匹配包含查询中指定的所有元素的数组。
Matches arrays that contain all elements specified in the query.
{ "tags": { "$all": [ "ssl" , "security" ] } } 即 { "$and": [ { "tags": "ssl" }, { "tags": "security" } ] }

$elemMatch

如果array字段中的元素符合所有指定$elemMatch条件,则选择文档。
Selects documents if element in the array field matches all the specified $elemMatch conditions.
{ "results": { "$elemMatch": { "$gte": 80, "$lt": 85 } } }

$size

如果数组字段为指定大小,则选择文档。
Selects documents if the array field is a specified size/length.

映射运算符 Projection

$

数组中匹配查询条件的第一个元素。
Projects the first element in an array that matches the query condition.

$elemMatch

符合指定$elemMatch条件的数组中的第一个元素。
Projects the first element in an array that matches the specified $elemMatch condition.

$meta

项目在$text操作期间分配的文档分数。
Projects the document’s score assigned during $text operation.

$slice

限制从数组中投影的元素数量。支持limitskip
Limits the number of elements projected from an array.

Make in ZC APP Platform