首页
学习
活动
专区
圈层
工具
发布

MongoDB查询(基本查询条件操作符介绍)

简介 MongoDB中使用find函数来进行查询。查询最终返回的是一个集合中文档的子集,子集合包括0个文档到这个集合中所有的文档。...3》 对于键“_id”,如果不指名其值,则查询结果中肯定包含这个键值对,如果不想包含,可以指明其值为0即可。...将他们组合应用,就可以查询值在某个范围内的文档了,比如我们要查询18-30岁(含)的所有用户: ? 这种范围查询操作符,除用在值为数字的键之上外,对于值为日期的键的范围匹配也尤为好用!...---- 【正则表达式】 正则表达式在任何语言中都是操作字符串的一大利器!在MongoDB的查询中,其依然威力不减。正则表达式可以灵活的匹配字符串类型的值。...这里再稍微提一下find函数和findOne函数的区别,刚才说了,find函数返回的是一个子集,而findOne就是返回一条文档或null(未查询到结果),对于一些可以接受文档做参数的函数如insert

3.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【翻译】MongoDB指南引言

    查询固定集合 如果使用 find()方法查询固定集合而没有指定排序规则,查询返回结果的排序和文档插入时的排序是一样的。...例如执行下面的操作: var a = new Timestamp(); db.test.insert( { ts: a } ); 然后,使用db.test.find()方法查询,返回结果为: { "_id...现在服务器会替换任何的顶级字段。 5.5 Date BSON 日期类型是64位整型,表示从UNIX新纪元(Jan 1, 1970)来的毫秒数。...这一结果表示了可表达的约2亿9000万年范围内的过去和未来。 官方的BSON规范指出DSON日期类型是通用协调时间(UTC datetime)。...= ISODate() 返回时间值的字符串:mydate1.toString() 返回日期中的月份,日期是基于0索引的,所以一月份就是:mydate1.getMonth() 6.MongoDB对JSON

    6.2K60

    MongoDB入门(四)

    $or 当其任何表达式的计算结果为true时,返回true。接受任意数量的参数表达式。 $not 返回与其参数表达式相反的布尔值。接受单个参数表达式。...如果这两个值是日期,则返回以毫秒为单位的差值。 如果这两个值是日期和毫秒数,则返回结果日期。 接受两个参数表达式。 如果这两个值是日期和数字,请首先指定日期参数,因为从数字中减去日期没有意义。...$strcasecmp 执行不区分大小写的字符串比较并返回:如果两个字符串相等,则返回“0”;如果第一个字符串大于第二个字符串,则返回“1”;如果第一个字符串小于第二个字符串,则返回“1”。...$dateToString 以格式化字符串的形式返回日期。 $isoDayOfWeek 返回ISO 8601格式的工作日编号,范围从“1”(星期一)到“7”(星期日)。...返回结果大小 聚合结果返回的是一个文档,不能超过 16M,从 MongoDB 2.6版本以后,返回的结果可以是一个游标或者存储到集合中,返回的结果不受 16M 的限制。

    1.8K20

    mongo创建索引及索引相关方法

    3、联合索引的优化 4、聚合管道的优化 5、最期望看到的查询组合 6、 最不期望看到的查询组合 7、 最左前缀原则 8、效率极低的操作符 explain 1、介绍 2、queryPlanner返回结果的意义...1、单键索引 ①普通单键索引 MongoDB 支持文档集合中任何字段的索引,在默认情况下,所有集合在 _id 字段上都有一个索引,应用程序和用户可以添加额外的索引来支持重要的查询操作 对于单字段索引和排序操作...MongoDB的查询计划会将多个索引并行的去执行,最先返回第101个结果的就是胜者,其他查询计划都会被终止,执行优胜的查询计划; 这个查询计划会被缓存,接下来相同的查询条件都会使用它; 2、何时查询计划缓存才会变呢...executionStats:为执行统计层面,返回winningPlan的统计结果 allPlansExecution:为返回所有执行计划的统计,包括rejectedPlan 所以:我们在查询优化的时候...根节点是MongoDB从中派生结果集的最后阶段。

    4.7K20

    Python | Python交互之mongoDB交互详解

    :db.dropDatabase() 集合操作 当集合不存在时,插入任何一条数据集合自动创建。...范围运算符 使用$in与$nin判断是否在某一范围内 举个栗子: #查询年龄为18、28的数据 db.xianyu.find({age:{$in:[]18,28}}) mongodb使用正则表达式 使用...({ $where:function() { return this.age>30;} }) mongodb投影 投影:在查询结果中只显示你想要看到的数据字段内容。...#查询结果中只显示name字段,不显示age db.xianyu.find({},{name:1}) mongodb排序 排序:db.集合名称.find().sort({字段:1,...})...修改输出文档的结构, 如重命名、 增加、 删除字段、 创建计算结果 $sort: 将输出文档排序后输出 $limit: 限制聚合管道返回的文档数 $skip: 跳过指定数量的文档, 并返回余下的文档 $

    9.6K30

    005.MongoDB索引及聚合

    一 MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。...sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。...聚合 2.1 aggregate() 方法 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。...可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。 $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。...$minute: 返回该日期的分钟部分。 $second: 返回该日期的秒部分(以0到59之间的数字形式返回日期的第二部分,但可以是60来计算闰秒)。

    3.3K20

    爬虫(105)pymongo, 这一篇文章够了,值得收藏

    获取单个文档 find_one() 在MongoDB中可以执行的最基本的查询类型是 find_one()。此方法返回与查询匹配的单个文档(或者None如果不匹配)。...查询多个文档 要获取多个文档作为查询结果,我们使用的 find() 方法。find()返回一个 Cursor实例,该实例使我们可以迭代所有匹配的文档。...就像我们对所做的一样find_one(),我们可以传递文档find() 以限制返回的结果。...或仅与特定查询匹配的那些文档: posts.count_documents({"author": "Mike"}) ? 范围查询 MongoDB支持许多不同类型的高级查询。...例如,让我们执行一个查询,在查询中我们将结果限制为早于某个特定日期的帖子,还按作者对结果进行排序: d = datetime.datetime(2009, 11, 12, 12) for post in

    2.3K20

    MongoDB系列六(聚合).

    可以根据任何字段(或者多个字段)进行排序,与在普通查询中的语法相同。如果要对大量的文档进行排序,强烈建议在管道的第一阶段进行排序,这时的排序操作可以使用索引。...跳过(skipping)—> $skip $skip也是接受一个数字n,丢弃结果集中的前n个文档,将剩余文档作为结果返回。在“普通”查询中,如果需要跳过大量的数据,那么这个操作符的效率会很低。...{"$last" : expr} 与"$first"相反,返回分组的最后一个值。 {"$addToSet" : expr} 针对数组字段, 如果当前数组中不包含expr ,那就将它添加到数组中。...{$year: "$date" } 返回日期的年份部分 {$month: "$date" } 返回日期的月份部分 {$dayOfMonth: "$date" } 返回日期的天部分 {$hour: "$date..." } 返回日期的小时部分 {$minute: "$date" } 返回日期的分钟部分 {$second: "$date" } 返回日期的秒部分 {$millisecond: "$date" } 返回日期的毫秒部分

    6.5K60

    数据库篇

    这里要注意,MySQL的Server层和Engine层是分离的; 最终的结果由执行引擎返回给客户端,如果开启查询缓存的话,则会缓存 1....curtime()、current_time( ) 获取当前日期 now()获取当前日期和时间 datediff(d1、d2)d1 和 d2 之间的天数差 adddate(date,num)返回 date...日期开始,之后 num 天的日期 subdate(date,num)返回 date 日期开始,之前 num 天的日期 聚合函数 Count(字段)根据某个字段统计总记录数(当前数据库保存到多少条数据)...此外,还可以在应用程序逻辑中采用某些方法避免出现重复的行,这样 UNION ALL和 UNION 返回的结果都是一样的,但 UNION ALL 不会进行排序。 16. MySQL 的关键字。...这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听 Socket 返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。

    1.7K10

    MongoDB必备知识点全面总结

    日期 BSON Date是一个64位整数,代表自Unix时代(1970年1月1日)以来的毫秒数。这导致过去和将来的可表示日期范围约为2.9亿年。...索引项的排序支持有效的相等匹配和基于范围的查询操作。此外,MongoDB还可以使用索引中的排序返回排序结果。...**(3) 其他索引 (了解) ** ① 地理空间索引(Geospatial Index) 为了支持对地理空间坐标数据的有效查询,MongoDB提供了两种特殊的索引:返回结果时使用平面几何的二维索引和返回结果时使用球面几何的二维球面索引...这些索引在其范围内的值分布更加随机,但只支 持相等匹配,不支持基于范围的查询。 3. 索引的查看 说明:返回一个集合中的所有索引的数组。...(2) 涵盖的查询 Covered Queries (了解) 当查询条件和查询的投影仅包含索引字段时,MongoDB直接从索引返回结果,而不扫描任何文档或将文档带入内存。

    5.2K30

    MySQL、Redis、MongoDB相关知识

    TEXT TEXT 是一个不区分大小写的 BLOB。...curtime()、current_time( ) 获取当前日期 now()获取当前日期和时间 datediff(d1、d2)d1 和 d2 之间的天数差 adddate(date,num)返回 date...日期开始,之后 num 天的日期 subdate(date,num)返回 date 日期开始,之前 num 天的日期 聚合函数 Count(字段)根据某个字段统计总记录数(当前数据库保存到多少条数据)...此外,还可以在应用程序逻辑中采用某些方法避免出现重复的行,这样UNION ALL 和 UNION 返回的结果都是一样的,但 UNION ALL 不会进行排序。 MySQL 的关键字。...这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听 Socket 返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。

    1.7K00

    day27.MongoDB【Python教程】

    插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId 例1 ? 例2 ? 简单查询 语法 ? 更新 语法 ?...方法findOne():查询,只返回第一个 ? 方法pretty():将结果格式化 ?...范围运算符 使用"$in","$nin" 判断是否在某个范围内 例6:查询年龄为18、28的学生 ? 支持正则表达式 使用//或$regex编写正则表达式 例7:查询姓黄的学生 ?...---- 1.6.2.投影 在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段 如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可 语法: 参数为字段与值,值为1表示显示,...:修改输入文档的结构,如重命名、增加、删除字段、创建计算结果 $sort:将输入文档排序后输出 $limit:限制聚合管道返回的文档数、 $skip:跳过指定数量的文档,并返回余下的文档 $unwind

    6.2K30

    MongoDb简介

    覆盖索引查询 覆盖查询是以下的查询: 所有的查询字段是索引的一部分 所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据文档中检索匹配查询条件和返回使用相同索引的查询结果...相反,它会从索引中提取数据,这是非常快速的数据查询。 注意: 由于我们的索引中不包括 _id 字段,_id在查询中会默认返回,可以在MongoDB的查询结果集中排除它。...注意,这个选项只有在结果集单个文档大小在16MB限制范围内时才有效。..."查询 插入数据后,我们可以利用find_one()或find()方法进行查询,其中find_one()查询得到的是单个结果,find()则返回一个生成器对象。...Mark'] 如果不使用limit()方法,原本会返回三个结果,加了限制后,会截取两个结果返回。

    4.9K40

    Web-第三十三天 MongoDB初级学习

    ),并返回计算后的数据结果。...时间关键字如下: $dayOfYear: 返回该日期是这一年的第几天(全年 366 天)。 $dayOfMonth: 返回该日期是这一个月的第几天(1到31)。...$dayOfWeek: 返回的是这个周的星期几(1:星期日,7:星期六)。 $year: 返回该日期的年份部分。 $month: 返回该日期的月份部分( 1 到 12)。...$week: 返回该日期是所在年的第几个星期( 0 到 53)。 $hour: 返回该日期的小时部分。 $minute: 返回该日期的分钟部分。...$second: 返回该日期的秒部分(以0到59之间的数字形式返回日期的第二部分,但可以是60来计算闰秒)。 $millisecond:返回该日期的毫秒部分( 0 到 999)。

    3.4K20

    《Spring Mongo实战》第5招 Document怎么映射

    查询语句开始走样,索引慢慢失效,接口返回给前端的类型也在漂移。我们原以为选了MongoDB就可以不用再管Schema,结果恰恰相反:数据库允许一个集合里存在不同形状的文档,不代表应用可以没有结构。...读方向相反:驱动返回Document,MappingMongoConverter拿到目标类的元数据,按字段名找到对应属性,按目标类型执行反向Converter,把子文档、数组、日期等重新装配成Java对象...理解架构后有一个很实用的判断:任何一次“对象保存正常但库里字段不对”的问题,大概率出现在映射上下文、@Field配置或自定义Converter三个地方之一。...企业应用里,Java领域模型本身就是一层强约束:字段名、类型、嵌套关系、枚举范围、必填关系都在类定义里。映射只是把这些约束翻译到数据库。...数据库允许灵活结构,不代表企业应用应该没有Schema。真正的成熟做法是:模型有约束,映射有规则,演进有节奏。

    18921

    MongoDB 索引-Index

    索引项的排序支持有效的相等匹配和基于范围的查询操作。此外,MongoDB还可以使用索引中的排序返回排序结果。...对于单个字段索引和排序操作,索引键的排序顺序(即升序或降序)并不重要,因为MongoDB可以在任何方向上遍历索引。...地理空间索引(Geospatial Index) 为了支持对地理空间坐标数据的有效查询,MongoDB提供了两种特殊的索引:返回结果时使用平面几何的二维索引和返回结果时使用球面几何的二维球面索引。...这些索引在其范围内的值分布更加随机,但只支持相等匹配,不支持基于范围的查询。 # 索引的管理操作 # 索引的查看 说明: 返回一个集合中的所有索引的数组。...,MongoDB直接从索引返回结果(不再去找集合),而不扫描任何文档或将文档带入内存。

    2.3K20

    1 MongoDB 安装 与 简单操作

    应用需要大量的地理位置查询、文本查询 等等 操作MongoDB 之前 先了解一下 连接MongoDB 首先配置文件中,有2处需要设置 image.png port:占用的端口 bindIp:0.0.0.0...db.comment.find() 或 db.comment.find({}) db.collection.find(条件, 结果集格式) 条件,结果集格式都可以不传递 例如: db.comment.find...地理空间索引(Geospatial Index) 为了支持对地理空间坐标数据的有效查询,MongoDB提供了两种特殊的索引:返回结果时使用平面几何的二维索引和返回结果时使用球面 几何的二维球面索引。...这些索引在其范围内的值分布更加随机,但只支 持相等匹配,不支持基于范围的查询。...,MongoDB直接从索引返回结果,而不扫描任何文档或将文档带入内存。

    1.3K10
    领券