上一篇我列举了MongoDB shell的所有的方法,该篇我将列举MongoDB的更新、查询等的所有操作符、管道聚合操作、管道聚合阶段、查询修饰语等。用作以后大家在使用MongoDB或学习MongoDB时可以使用该篇博文做个集中查阅的文章。
查询和映射操作(Query and Projection Operators)
原文链接
网上找到一个比较详细的与sql操作对比的文档。链接
查询选择器
比较查询运算符
名称 | 描述 | 格式 |
---|---|---|
$eq | 匹配指定的两个值是否相等, | {field: { $eq: value} } |
$gt | 匹配字段值比指定值大的文档 | {field: { $gt: value} } |
$gte | 匹配字段值比指定值大与等于的文档 | {field: { $gte: value} } |
$in | 字段值匹配到数组中指定的任何值的文档 | { field: { $in: [value1, value2, … valueN ] } } |
$lt | 匹配字段值小于指定值的文档。 | {field: { $lt: value} } |
$lte | 匹配字段值小于或等于指定值的文档。 | {field: { $lte: value} } |
$ne | 匹配字段值不等于指定值或不包该字段的文档。 | {field: { $ne: value} } |
$nin | 匹配字段值不在指定数组中或不包该字段的文档 | {field: { $nin: value} } |
逻辑查询运算符
名称 | 描述 | 格式 |
---|---|---|
$and | 返回与两个查询子句都匹配的文档 | { $and:[{expression1}, {expression2}, … ,{expressionN} ] } |
$not | 返回与查询表达式不匹配的文档 | { field: { $not: { operator-expression} } } |
$nor | 返回两个查询子句都不匹配的文档 | { $nor: [{expression1}, {expression2}, … {expressionN} ] } |
$or | 返回与任意一个查询子句匹配的文档 | { $or: [{expression1}, {expression2}, … {expressionN} ] } |
元素查询运算符
名称 | 描述 | 格式 |
---|---|---|
$exists | 匹配具有指定字段的文档 | { field: { $exists: boolean} } |
$type | 匹配指定字段为指定BSON类型的文档 | { field: { $type: BSON type } } |
评估查询运算符
名称 | 描述 | 格式 |
---|---|---|
$expr | 允许在查询语言中使用聚合表达式。 | { $expr: { expression} } |
$jsonSchema | 匹配符合与给定的json纲要的文档。 | { $jsonSchema: schema} |
$mod | 对执行执行求模运算,并返回结果为指定值的文档,求模运算条件时使用数组指定的,其中第一个数字为除数,第二个数字时余数。 | { field: { $mod: [ divisor, remainder ] } } |
$regex | 返回指定字段值与正则表达式匹配的文档 | { field: /pattern/options } |
$text | 文本对带有文本索引的字段内容执行文本搜索 | { $text:{ $search:string, $language: string, $caseSensitive: boolean, $diacriticSensitive: boolean }} |
$where | 匹配满足javascript表达式的文档。 | { $where: function() { return …;} } |
地理空间查询运算符(该篇建议大家查看源文档说明,翻译的感觉有误差)
名称 | 描述 |
---|---|
$geoIntersect | 选择与GeoJSON几何相交的几何图形。2dsphere索引支持$geoIntersects。 |
$geoWithin | 选择具有完全位于指定形状内的地理空间数据的文档 |
$near | 指定一个能将文档从最近到最远形式返回的地理空间查询的点。该运算符可以指定一个GeoJSON点或遗留坐标点。 |
$nearSphere | 指定一个能将文档从最近到最远形式返回的地理空间查询的点。mongodb使用球面几何计算出$nearSphere的距离。 |
$box | 使用遗留坐标对指定一个矩形框,用于$geoWithin查询。2d索引支持$box。 |
$center | 当$geoWithin使用平面几何查询时,使用遗留坐标指定一个圆。 2d索引支持$center。 |
$centerSphere | 当使用球面几何时,使用遗留坐标对或者使用GeoJson格式的$geoWithin查询指定一个圆。2dsphere和2d索引支持$center。 |
$geometry | 指定一个基于GeoJSON格式的地理空间查询操作的几合。 |
$maxDistance | 指定一个最大的距离来限制$near和$nearSphere的查询结果,2dsphere和2d索引支持$maxDistance。 |
$minDistance | 指定一个最大的距离来限制$near和$nearSphere的查询结果,仅限2dsphere索引支持 |
$polygon | 为$geoWithin查询使用遗留坐标对指定一个多边形。2d索引支持$polygon。 |
$uniqueDocs | 不建议使用,改变一个$geoWithin和$near查询来确保即使一个文档匹配多次,也只返回一次。 |
数组查询运算符
名称 | 描述 | 格式 |
---|---|---|
$all | 匹配文档的一个字段值是包含所有指定元素的数组的文档 | {field: { $all: [ value1, value2…] } } |
$elem |