`
zc985552943
  • 浏览: 287146 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11471
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:26632
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:15611
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:26665
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13379
社区版块
存档分类
最新评论

04_MongoDB_查询文档

阅读更多

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作为查询的一部分。

分享到:
评论

相关推荐

    很全的_Mongodb数据库学习文档_与_php操作mongodb

    很全的_Mongodb数据库学习文档_与_php操作mongodb

    Data-Unit_MongoDB_Restore_v2.1.zip

    Data-Unit_MongoDB_Restore适用于磁盘存储故障、勒索病毒删除、误操作删除等导致的数据库丢失恢复。运行工具后将数据文件拖入本窗口即可。也支持扫描分区和裸磁盘,建议扫描磁盘镜像文件,效果更好。 免费版每个集合...

    window_mongodb执行过程个人笔记——不建议下载.txt

    window_mongodb执行过程个人笔记——不建议下载.txt Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前...

    Studio_3T_for_MongoDB_v2019.3.0x64.rar

    它有一个自动完成的功能,这使得它方便用户处理,编辑文档,探索数据方案和颜色代码的数据库,连接和字段类型,便于理解和可视化。 它有一个用于调度MongoDB任务的调度特性。 用户可以在最短的时间内创建并运行复杂...

    基于Vue_Express_Mongodb个人家庭财务系统+源代码+文档说明+数据库.zip

    基于Vue_Express_Mongodb个人家庭财务系统设计毕业源码案例设计 开发软件: VsCode 开发语言: javascript 技术介绍:前端上采用vue-cli脚手架创建项目,通过axios进行相关的数据请求(类似jQuery的ajax)。 后端上...

    MONGOdb视频教程地址.txt

    1.4、-MongoDB文档、集合、数据库的概念.mp4 1.5、-MongoDB数据类型.mp4 123.txt 2.1、_MongoDB增、删、改文档】.mp4 2.2、-MongoDB查询语法1.mp4 2.3、_MongoDB查询语法2.mp4 2.4、-MongoDB查询语法3.mp4

    MongoDB_文档_查询

    查询文档2.MongoDB 与 RDBMS Where 语句比较3.MongoDB AND 条件4.MongoDB OR 条件5.AND 和 OR 联合使用 1.查询文档 语法 MongoDB 查询数据的语法格式如下: db.collection.find(query, projection) query :可选,...

    mongoDB的官方中文文档

    mongoDB中文文档和一个可以运行的dome,其中包括mongoDB索引,管道,事务,集合和crud等基本操作

    SpringMongodb参考文档.docx

    2.了解NoSQL和文档数据库 3.要求 4.其他帮助资源 4.1。支持 4.1.1。社区论坛 4.1.2。专业支持 4.2。发展之后 5.新&值得注意的 5.1。Spring Data MongoDB 2.1中的新特性 5.2。Spring Data MongoDB 2.0中的新特性 5.3...

    MongoDB java使用文档

    MongoDB实现增删改查,java程序驱动,复杂查询,源代码示例

    springMongodb参考文档中文版

    基于MongoDB JSON的查询方法和字段限制 11.3.4。基于JSON的SpEL表达式查询 11.3.5。类型安全的查询方法 11.3.6。全文搜索查询 11.3.7。预测 11.4。杂 11.4.1。CDI集成 12.反应性MongoDB存储库 12.1。介绍 12.2。活性...

    TP_SIR_mongodb

    TP_SIR_mongodb 面向文档的数据库有哪些限制? 查询兼容性:某些在 SQL 中看起来“经典”的查询在 NOSQL 中不一定可用。 不考虑 ACID 属性:有时在 NOSQL 中不考虑 ACID(原子性、一致性、隔离性、持久性)。 ...

    Spring Data MongoDB中文文档

    Spring Data MongoDB中文文档 便宜下载了。

    14、MongoDB存储原理&多文档事务详解-ev.rar

    14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_ev.rar14、MongoDB存储原理&多文档事务详解_...

    MongoDB的文档查询.pdf

    MongoDB的文档查询.pdf 学习资料 复习资料 教学资源

    mongodb修改删除查询文档.mp4

    mongodb修改删除查询文档

    MongoDB 3.6 中文文档

    MongoDB 3.6 中文文档

    mongodb帮助文档整合

    mongodb分片配置.docx Mongodb.chm mongodb安装以及基本操作.docx MongoDB使用手册.doc mongo分布式研究.docx 有这5个文档足够学习Mongodb使用了

    mongodb-driver-core-4.2.3-API文档-中文版.zip

    包含翻译后的API文档:mongodb-driver-core-4.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.mongodb:mongodb-driver-core:4.2.3; 标签:mongodb、driver、core、中文文档、jar包、java; 使用方法:解压...

    mongodb3.2.4说明文档

    mongodb3.2.4说明文档

Global site tag (gtag.js) - Google Analytics