find文档
1.find简介
使用find查询集合中符合条件的子集合
db.test.blog.find();
类似于sql查询
select * from test.blog
上面的查询是返回多有多有集合,并且是所有键。有时我们也会指定返回部分键,这样方式可以减少IO
> db.test.blog.find({},{"age":1,"name":1}); { "_id" : 1, "age" : 1, "name" : "joe" } { "_id" : ObjectId("533a1c27b653a97435a02030") } { "_id" : "2" }
类似sql查询
select age , name from test.blog
使用带条件的查询举例:
> db.test.blog.find({"age":1}); { "_id" : 1, "age" : 1, "like" : [ "eat", "abc" ], "name" : "joe" }
类似sql查询
select * from test.blog where age = 1
2.查询条件
比较操作符:
命令 | 描述 |
$lt | < |
$lte | <= |
$gt | > |
$gte | >= |
> db.student.find({age:{$lte:12,$gte:10}});
类似sql
select * from student where age >= 10 and age <= 12
$ne:不等,能用于多有类型的数据
> db.student.find({age:{$ne:10}});
类似sql
select * from student where age != 10
3.OR查询
命令 | 描述 |
$in | 查询一个键的多个值 |
$or | 用来完成多个键值的任意给定值 |
> db.student.find({age:{$in:[10,13]}}); { "_id" : 0, "name" : "aa0", "age" : 10 } { "_id" : 3, "name" : "aa3", "age" : 13 } { "_id" : 5, "name" : "aa5", "age" : 10 } { "_id" : 8, "name" : "aa8", "age" : 13 }
类比sql
select * from student where age in (10,13);
> db.student.find({"$or":[{"age":{$in:[10,13]}},{"name":"aa7"}]}); { "_id" : 0, "name" : "aa0", "age" : 10 } { "_id" : 3, "name" : "aa3", "age" : 13 } { "_id" : 5, "name" : "aa5", "age" : 10 } { "_id" : 7, "name" : "aa7", "age" : 12 } { "_id" : 8, "name" : "aa8", "age" : 13 }
类比sql
select * from student where age in (10,13) or name = 'aa0'
4.$not
$not是原条件句,可以用在任何其他条件之上
> db.student.find({"age":{$not:{"$mod":[5,1]}}}); { "_id" : 0, "name" : "aa0", "age" : 10 } { "_id" : 2, "name" : "aa2", "age" : 12 } { "_id" : 3, "name" : "aa3", "age" : 13 } { "_id" : 4, "name" : "aa4", "age" : 14 } { "_id" : 5, "name" : "aa5", "age" : 10 } { "_id" : 7, "name" : "aa7", "age" : 12 } { "_id" : 8, "name" : "aa8", "age" : 13 } { "_id" : 9, "name" : "aa9", "age" : 14 }
$mod:将查询的值除以第一个参数“5”,如果余数等于第二个参数“1”那么返回该值
5.null
null可以匹配自身(key对应的值为null),还可以匹配“不存在的”(文档中不存在这个key)。
> db.student.find({"like":null}); { "_id" : 1, "name" : "aa1", "age" : 11 } { "_id" : 2, "name" : "aa2", "age" : 12 } { "_id" : 3, "name" : "aa3", "age" : 13 } { "_id" : 4, "name" : "aa4", "age" : 14 } { "_id" : 5, "name" : "aa5", "age" : 10 } { "_id" : 6, "name" : "aa6", "age" : 11 } { "_id" : 7, "name" : "aa7", "age" : 12 } { "_id" : 8, "name" : "aa8", "age" : 13 } { "_id" : 9, "name" : "aa9", "age" : 14 } { "_id" : 0, "age" : 10, "like" : null, "name" : "aa0" } > db.student.find({"like":null,"like":{$exists:true}}); { "_id" : 0, "age" : 10, "like" : null, "name" : "aa0" }
说明:$exists:判断键是否存在
6.正则表达式
> db.student.find({"name":/aa/}); { "_id" : 1, "name" : "aa1", "age" : 11 } { "_id" : 2, "name" : "aa2", "age" : 12 } { "_id" : 3, "name" : "aa3", "age" : 13 } { "_id" : 4, "name" : "aa4", "age" : 14 } { "_id" : 5, "name" : "aa5", "age" : 10 } { "_id" : 6, "name" : "aa6", "age" : 11 } { "_id" : 7, "name" : "aa7", "age" : 12 } { "_id" : 8, "name" : "aa8", "age" : 13 } { "_id" : 9, "name" : "aa9", "age" : 14 } { "_id" : 0, "age" : 10, "like" : null, "name" : "aa0" } > db.student.find({"name":/aa1/}); { "_id" : 1, "name" : "aa1", "age" : 11 }
使用/reg/来表示正则
7.查询数组
命令 | 描述 |
$all | 匹配数组中的多个元素 |
$size | 匹配数组的长度 |
$slice | 返回数组中的子集合 |
> db.food.find({"fruit":{$all:["apple","banana"]}}); { "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] } { "_id" : 3, "fruit" : [ "cherry", "banana", "apple" ] } > db.food.find({"fruit":"apple"}); { "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] } { "_id" : 2, "fruit" : [ "apple", "kumquat", "orange" ] } { "_id" : 3, "fruit" : [ "cherry", "banana", "apple" ] }
> db.food.find({"fruit":{$size:3}}); { "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] } { "_id" : 2, "fruit" : [ "apple", "kumquat", "orange" ] } { "_id" : 3, "fruit" : [ "cherry", "banana", "apple" ] }
8.查询内嵌文档
用“.”表示法是查询文档区别于其他文档的主要特点。查询文档可以包含点,来表示深入内嵌文档内部。点表示法也是待插入的文档不能包含"."的原因。
> db.food.insert({"_id":4,"fruit":{"apple":"good","banana":"good"}}); > db.food.insert({"_id":5,"fruit":{"apple":"best","banana":"good"}}); > db.food.find({"fruit.apple":"good"}); { "_id" : 4, "fruit" : { "apple" : "good", "banana" : "good" } } > db.food.find({"fruit.apple":"best"}); { "_id" : 5, "fruit" : { "apple" : "best", "banana" : "good" } }
9.$where
如果前面的查询方法都不能实现,那么就轮到$where子句了,用它可以执行任意javascript作为查询的一部分。
相关推荐
而Navicat121_mongodb_cs_x64.exe和Navicat121_mongodb_cs_x86.exe则是Navicat为MongoDB数据库设计的客户端应用程序,允许用户连接到MongoDB服务器,执行查询、数据导入导出、备份、同步、集群管理等任务。...
Data-Unit_MongoDB_Restore适用于磁盘存储故障、勒索病毒删除、误操作删除等导致的数据库丢失恢复。运行工具后将数据文件拖入本窗口即可。也支持扫描分区和裸磁盘,建议扫描磁盘镜像文件,效果更好。 免费版每个集合...
MongoDB 是一个基于分布式文件存储的开源文档数据库系统,设计为处理海量数据并提供高可用性和高性能。它以 JSON 格式的文档作为数据模型,支持动态模式,易于快速开发。MongoDB 的特点是它的灵活性、可扩展性以及对...
MongoDB是一款高性能、无模式的文档型数据库,它在处理大量数据时表现出色,尤其适合大数据应用场景。PHP是广泛使用的服务器端脚本语言,尤其在Web开发领域占据主导地位。当PHP需要与MongoDB进行交互时,就需要使用...
MongoDB是一款分布式文档型数据库,以其灵活性、高性能和易扩展性在现代Web开发中占据了重要地位。MongoDB中文手册是开发者必备的参考资料,它详细介绍了MongoDB的各种操作和语法用法,帮助用户深入理解并有效利用这...
MongoDB是一种开源的文档型NoSQL数据库,以其高性能、高可用性和易用性而闻名,特别适合处理大量非结构化数据。其核心特性包括但不限于:面向文档的数据模型、动态模式、水平可扩展性以及丰富的查询语言。 - **命名...
MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性、高性能和可伸缩性而闻名。在深入探讨MongoDB的学习和设计灵魂之前,我们先来理解MongoDB的基本概念和特性。 MongoDB采用NoSQL数据模型,它不同于传统的...
MongoDB是一款分布式文档数据库系统,以其灵活性、高性能和易扩展性而受到开发者的广泛欢迎。在Java编程环境中,与MongoDB交互主要通过其提供的Java驱动程序。本篇将深入探讨"mongodb_java_2.6_API",即MongoDB 2.6...
MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性、高性能和易用性而备受开发者青睐。在本压缩包“mongodb_READ-AND-WRITE.rar”中,我们关注的是如何读取文件内容并将其存储到MongoDB数据库中。在这个过程...
标题“php_mongodb-1.5.5-7.2-ts-vc15-x64.zip”揭示了这个压缩包是针对PHP的一个扩展,具体来说是用于连接和操作...通过这个扩展,开发者可以在PHP应用中充分利用MongoDB的强大功能,进行数据的存取、查询和处理。
MongoDB是一款NoSQL数据库,它采用灵活的数据模型,支持JSON格式的文档存储,具有强大的查询能力。其主要特点包括: 1. 高性能:MongoDB使用内存映射技术,数据读写速度快。 2. 高可用性:通过复制集实现数据备份和...
`robot_mongodb_library` 库为Robot Framework提供了一个接口,允许测试工程师执行常见的MongoDB操作,如连接数据库、创建集合、插入和查询文档、更新和删除数据等。以下是一些关键知识点: 1. **Python编程**:这...
2. **MongoDB**: MongoDB是一个基于分布式文件存储的NoSQL数据库系统,它使用JSON-like文档作为数据结构,支持灵活查询、高可用性和可扩展性。 3. **MongoDB Atlas**: MongoDB Atlas是MongoDB的云数据库服务,提供...
006_mongodb的查询部分字段和按条件查询讲解 007_mongodb的多表查询讲解 008_基于mongodb实现商品管理系统之准备工作讲解 009_基于mongodb实现商品管理系统之web层编写讲解 010_基于mongodb实现商品管理系统之...
MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性和高性能而受到广大开发者的青睐。Python作为一门简洁且功能强大的编程语言,与MongoDB结合使用,提供了丰富的数据操作接口。本篇将详细介绍如何使用Python...
- **Dot Notation**:解释了 MongoDB 中的点符号表示法,这是进行嵌套文档查询的基础。 综上所述,《mongodb-docs-2011-01-29_mongodb最新用户手册》是一份详尽的手册,旨在为用户提供全面的技术支持和指导,覆盖了...
每个文件块都是一个单独的MongoDB文档,存储在两个集合中:`files`集合用于存储文件元数据,如文件名、大小和创建日期;`chunks`集合则存储文件的实际内容。 在Java中,我们可以使用MongoDB Java驱动程序来操作...
SpringBoot是Java开发的一个轻量级框架,它简化了Spring应用程序的创建和配置过程,而MongoDB则是一种流行的NoSQL数据库系统,以其文档型数据模型和高性能而著称。接下来,我们将深入探讨如何将这两个技术进行整合。...
MongoDB是一个高性能、无模式的文档型数据库,特别适合处理大规模非结构化数据。在SpringBoot中,我们可以通过Spring Data MongoDB模块来实现MongoDB的集成,利用其提供的Repository接口进行CRUD操作。MongoDB的优势...