第16章 MongoDB 查询文档教程
第16章 MongoDB 查询文档教程使用 find() 方法。
find() 方法以非结构化的方式来显示所有文档。
语法
MongoDB 查询数据的语法格式如下:
db.collection.find(query, projection)
- query :非必输,使用查询操作符指定查询条件
- projection :非必输,使用投影操作符指定return 的键。查询时return 文档中所有键值, 只需省略该参数即可(默认省略)。
如果大王需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
>db.col.find().pretty()
pretty() 方法以格式化的方式来显示所有文档。
实例
以下实例咱们查询了集合 col 中的数据:
> db.col.find().pretty()
{
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql database",
"by" : "liulianjiangcsdn教程",
"url" : "http://blog.csdn.net/qq441540598",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
除了 find() 方法之外,还有一个 findOne() 方法,它只return 一个文档。
MongoDB 与 RDBMS Where 语句比较
如果大王熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:
操作 | 格式 | 范例 | RDBMS中的类似语句 |
---|---|---|---|
等于 | {<key>:<value> } |
db.col.find({"by":"liulianjiangcsdn教程"}).pretty() |
where by = 'liulianjiangcsdn教程' |
小于 | {<key>:{$lt:<value>}} |
db.col.find({"likes":{$lt:50}}).pretty() |
where likes < 50 |
小于或等于 | {<key>:{$lte:<value>}} |
db.col.find({"likes":{$lte:50}}).pretty() |
where likes <= 50 |
大于 | {<key>:{$gt:<value>}} |
db.col.find({"likes":{$gt:50}}).pretty() |
where likes > 50 |
大于或等于 | {<key>:{$gte:<value>}} |
db.col.find({"likes":{$gte:50}}).pretty() |
where likes >= 50 |
不等于 | {<key>:{$ne:<value>}} |
db.col.find({"likes":{$ne:50}}).pretty() |
where likes != 50 |
MongoDB AND 条件
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
语法格式如下:
>db.col.find({key1:value1, key2:value2}).pretty()
实例
以下实例通过 by 和 title 键来查询 liulianjiangcsdn教程 中 MongoDB 教程 的数据
> db.col.find({
"by":"liulianjiangcsdn教程", "title":"MongoDB 教程"}).pretty()
{
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql database",
"by" : "liulianjiangcsdn教程",
"url" : "http://blog.csdn.net/qq441540598",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
以上实例中类似于 WHERE 语句:WHERE by=‘liulianjiangcsdn教程’ AND title=‘MongoDB 教程’
MongoDB OR 条件
MongoDB OR 条件语句使用了关键字 $or,语法格式如下:
>db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
实例
以下实例中,咱们演示了查询键 by 值为 liulianjiangcsdn教程 或键 title 值为 MongoDB 教程 的文档。
>db.col.find({$or:[{
"by":"liulianjiangcsdn教程"},{
"title": "MongoDB 教程"}]}).pretty()
{
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql database",
"by" : "liulianjiangcsdn教程",
"url" : "http://blog.csdn.net/qq441540598",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
>
AND 和 OR 联合使用
以下实例演示了 AND 和 OR 联合使用,类似常规 SQL 语句为: ‘where likes>50 AND (by = ‘liulianjiangcsdn教程’ OR title = ‘MongoDB 教程’)’
>db.col.find({
"likes": {$gt:50}, $or: [{
"by": "liulianjiangcsdn教程"},{
"title": "MongoDB 教程"}]}).pretty()
{
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql database",
"by" : "liulianjiangcsdn教程",
"url" : "http://blog.csdn.net/qq441540598",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
本专栏所有文章
第1章 MongoDB 教程 | 第2章 NoSQL 简介教程 |
---|---|
第3章 MongoDB 简介教程 | 第4章 Windows MongoDB教程 |
第5章 Linux MongoDB教程 | 第6章 OSX MongoDB教程 |
第7章 MongoDB 概念解析教程 | 第8章 MongoDB 连接教程 |
第9章 MongoDB 创建数据库教程 | 第10章 MongoDB 删除数据库教程 |
第11章 MongoDB 创建集合教程 | 第12章 MongoDB 删除集合教程 |
第13章 MongoDB 插入文档教程 | 第14章 MongoDB 更新文档教程 |
第15章 MongoDB 删除文档教程 | 第16章 第16章 MongoDB 查询文档教程教程 |
第17章 MongoDB 条件操作符教程 | 第18章 MongoDB $type 操作符教程 |
第19章 MongoDB Limit与Skip方法教程 | 第20章 MongoDB 排序教程 |
第21章 MongoDB 索引教程 | 第22章 MongoDB 聚合教程 |
第23章 MongoDB 复制(副本集)教程 | 第24章 MongoDB 分片教程 |
第25章 MongoDB 备份与恢复教程 | 第26章 MongoDB 监控教程 |
第27章 MongoDB Java教程 | 第28章 MongoDB PHP 扩展教程 |
第29章 MongoDB PHP教程 | 第30章 MongoDB PHP7教程 |
第31章 Node.js MongoDB教程 | 第32章 MongoDB 关系教程 |
第33章 MongoDB 数据库引用教程 | 第34章 MongoDB 覆盖索引查询教程 |
第35章 MongoDB 查询分析教程 | 第36章 MongoDB 原子操作教程 |
第37章 MongoDB 高级索引教程 | 第38章 MongoDB 索引限制教程 |
第39章 MongoDB ObjectId教程 | 第40章 MongoDB Map Reduce教程 |
第41章 MongoDB 全文检索教程 | 第42章 MongoDB 正则表达式教程 |
第43章 MongoDB 管理工具教程 | 第44章 MongoDB GridFS教程 |
第45章 MongoDB 固定集合教程 | 第46章 MongoDB 自动增长教程 |
寄语
本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598
- 创新的功能——促使竞争生态结构的改变,它提供我们挑战传统的新观念,促使我们推动全球分工的新思维,技术整合的新方法,人才培育的新方法。
- 我的宿舍我做主,经营好生活的节奏,追求高质量的生活目标。
- 不可能的事别想不可能的人别等明知道不会有任何结果还泥足深陷就是你活该。
- 年轻球员有点像甜瓜,只有当你打开并品尝之后,才能100%知道瓜是不是很好吃。有的甜瓜看起来很漂亮,但它们口味不佳;有的甜瓜长得很丑,但当你打它开之后才知道,味道好极了。"
- 功夫自难处做去,如逆风鼓棹,才是一段真精神;学问自苦中得来,似披沙获金,才是一个真消息。
转载:https://blog.csdn.net/qq441540598/article/details/128843834