首页 / MONGODB / MongoDB 查询文档
MongoDB 查询文档
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB 查询文档,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3389字,纯文字阅读大概需要5分钟。
内容图文
版权所有,未经许可,禁止转载
章节
- MongoDB 入门
- MongoDB 优势
- MongoDB 安装
- MongoDB 数据建模
- MongoDB 创建数据库
- MongoDB 删除数据库
- MongoDB 创建集合
- MongoDB 删除集合
- MongoDB 数据类型
- MongoDB 插入文档
- MongoDB 查询文档
- MongoDB 更新文档
- MongoDB 删除文档
- MongoDB Projection
- MongoDB Limit
- MongoDB 排序
- MongoDB 索引
- MongoDB 聚合
- MongoDB 备份数据
本章介绍如何从MongoDB集合中查询文档。
find() 方法
要从MongoDB集合查询数据,需要使用find()
方法。
语法
find()
方法的基本语法如下
db.COLLECTION_NAME.find()
方法显示文档时,是没有结构化的。
pretty() 方法
要以格式化的方式显示结果,可以使用pretty()
方法。
语法
db.mycollection.find().pretty()
例子
> db.qikegu.find().pretty()
{
"_id" : ObjectId("5cf7b4839ad87fde6fd23a03"),
"title" : "MongoDB 入门",
"description" : "MongoDB是开源的NoSQL数据库",
"by" : "qikegu.com",
"url" : "https://www.qikegu.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 888
}
除了find()
方法之外,还有findOne()
方法,它只返回一个结果。
MongoDB查询条件与SQL Where对比
find()
方法可以传入查询条件,为便于理解,下表列出了等价的SQL Where语句。
操作 | 语法 | 例子 | 等价于 |
---|---|---|---|
等于 | {<key>:<value>} | db.mycol.find({"by":"qikegu.com"}).pretty() | where by = 'qikegu.com' |
小于 | {<key>:{$lt:<value>}} | db.mycol.find({"likes":{$lt:50}}).pretty() | where likes < 50 |
小于等于 | {<key>:{$lte:<value>}} | db.mycol.find({"likes":{$lte:50}}).pretty() | where likes <= 50 |
大于 | {<key>:{$gt:<value>}} | db.mycol.find({"likes":{$gt:50}}).pretty() | where likes > 50 |
大于等于 | {<key>:{$gte:<value>}} | db.mycol.find({"likes":{$gte:50}}).pretty() | where likes >= 50 |
不等于 | {<key>:{$ne:<value>}} | db.mycol.find({"likes":{$ne:50}}).pretty() | where likes != 50 |
AND
语法
在find()
方法中,查询条件可以使用AND
,下面是AND
的基本语法
> db.qikegu.find(
{
$and: [
{key1: value1}, {key2:value2}
]
}
).pretty()
$and
也可以省略,直接传入键值对,以逗号分隔,格式如下:
> db.qikegu.find(
{
key1: value1,
key2:value2
}
).pretty()
例子
下面的例子将显示由'qikegu.com'编写并且标题是'MongoDB 入门'的所有教程'。
> db.qikegu.find({$and:[{"by": "qikegu.com"},{"title": "MongoDB 入门"}]}).pretty()
{
"_id" : ObjectId("5cf7b4839ad87fde6fd23a03"),
"title" : "MongoDB 入门",
"description" : "MongoDB是开源的NoSQL数据库",
"by" : "qikegu.com",
"url" : "https://www.qikegu.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 888
}
对于上面的示例,等效where子句是where by = 'qikegu.com'和' title = 'MongoDB 入门'
。可以在find
子句中传递任意数量的键值对。
OR
语法
在find()
方法中,查询条件可以使用OR
,下面是OR
的基本语法
> db.qikegu.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
例子
下面的例子将显示由“qikegu.com”编写或标题为“MongoDB 入门”的教程。
> db.qikegu.find({$or:[{"by": "qikegu.com"},{"title": "MongoDB 入门"}]}).pretty()
{
"_id" : ObjectId("5cf7b4839ad87fde6fd23a03"),
"title" : "MongoDB 入门",
"description" : "MongoDB是开源的NoSQL数据库",
"by" : "qikegu.com",
"url" : "https://www.qikegu.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 888
}
...
AND, OR 一起使用
例子
下面的示例将显示符合以下条件的文档:点赞大于10,并且要么标题是“MongoDB 入门”,要么由"qikegu.com"编写。等效SQL where子句是where like >10 AND (by = 'qikegu.com'或title = 'MongoDB 入门')
> db.qikegu.find({"likes": {$gt:10}, $or: [{"by": "qikegu.com"}, {"title": "MongoDB 入门"}]}).pretty()
{
"_id" : ObjectId("5cf7b4839ad87fde6fd23a03"),
"title" : "MongoDB 入门",
"description" : "MongoDB是开源的NoSQL数据库",
"by" : "qikegu.com",
"url" : "https://www.qikegu.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 888
}
...
内容总结
以上是互联网集市为您收集整理的MongoDB 查询文档全部内容,希望文章能够帮你解决MongoDB 查询文档所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。