【Mongodb教程 第七课 】MongoDB 查询文档
find() 方法
要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。
语法
基本的find()方法语法如下
- >db.COLLECTION_NAME.find()
find() 方法将在非结构化的方式显示所有的文件。
pretty() 方法
结果显示在一个格式化的方式,可以使用 pretty() 方法.
语法:
- >db.mycol.find().pretty()
例子
- >db.mycol.find().pretty()
- {
- "_id": ObjectId(7df78ad8902c),
- "title": "MongoDB Overview",
- "description": "MongoDB is no sql database",
- "by": "tutorials point",
- "url": "http://www.yiibai.com",
- "tags": ["mongodb", "database", "NoSQL"],
- "likes": "100"
- }
- >
除了find() 方法外,还有一个 findOne() 法,返回一个文件。
RDBMS Where子句和MongoDB等同语句
要查询文件的一些条件的基础上,可以使用下面的操作
操作 | 语法 | 例子 | RDBMS 等同 |
---|---|---|---|
Equality | {<key>:<value>} | db.mycol.find({"by":"tutorials point"}).pretty() | where by = 'tutorials point' |
Less Than | {<key>:{$lt:<value>}} | db.mycol.find({"likes":{$lt:50}}).pretty() | where likes < 50 |
Less Than Equals | {<key>:{$lte:<value>}} | db.mycol.find({"likes":{$lte:50}}).pretty() | where likes <= 50 |
Greater Than | {<key>:{$gt:<value>}} | db.mycol.find({"likes":{$gt:50}}).pretty() | where likes > 50 |
Greater Than Equals | {<key>:{$gte:<value>}} | db.mycol.find({"likes":{$gte:50}}).pretty() | where likes >= 50 |
Not Equals | {<key>:{$ne:<value>}} | db.mycol.find({"likes":{$ne:50}}).pretty() | where likes != 50 |
AND 在MongoDB中用法
语法:
在 find() 方法,如果通过多个键分离',',那么 MongoDB 处理 AND 条件。AND 基本语法如下所示:
- >db.mycol.find({key1:value1, key2:value2}).pretty()
例子
下面给出的例子将显示所有的教程,标题是“MongoDB Overview“
- >db.mycol.find({"by":"tutorials point","title": "MongoDB Overview"}).pretty()
- {
- "_id": ObjectId(7df78ad8902c),
- "title": "MongoDB Overview",
- "description": "MongoDB is no sql database",
- "by": "yiibai",
- "url": "http://www.yiibai.com",
- "tags": ["mongodb", "database", "NoSQL"],
- "likes": "100"
- }
- >
对于上面给出的例子相当于where子句 ' where by='yiibai' AND title='MongoDB Overview' , 可以通过任意数量的键值对在 find 子句。
MongoDB中OR
语法:
OR条件的基础上要查询文件,需要使用$or关键字。OR 基本语法如下所示:
- >db.mycol.find(
- {
- $or: [
- {key1: value1}, {key2:value2}
- ]
- }
- ).pretty()
例子
下面给出的例子将显示所有的教程,由'yiibai' 所写或标题是“MongoDB Overview '
- >db.mycol.find({$or:[{"by":"yiibai"},{"title": "MongoDB Overview"}]}).pretty()
- {
- "_id": ObjectId(7df78ad8902c),
- "title": "MongoDB Overview",
- "description": "MongoDB is no sql database",
- "by": "yiibai",
- "url": "http://www.yiibai.com",
- "tags": ["mongodb", "database", "NoSQL"],
- "likes": "100"
- }
- >
AND 和 OR 一起使用
例子
下面给出的例子将显示有像的文件大于100,其标题是“MongoDB Overview'或者是'yiibai' 。等效于 SQL where子句 为 'where likes>10 AND (by = 'yiibai' OR title = 'MongoDB Overview')'
- >db.mycol.find("likes": {$gt:10}, $or: [{"by": "yiibai"}, {"title": "MongoDB Overview"}] }).pretty()
- {
- "_id": ObjectId(7df78ad8902c),
- "title": "MongoDB Overview",
- "description": "MongoDB is no sql database",
- "by": "yiibai",
- "url": "http://www.yiibai.com",
- "tags": ["mongodb", "database", "NoSQL"],
- "likes": "100"
- }
- >
【Mongodb教程 第七课 】MongoDB 查询文档的更多相关文章
- MongoDB 教程(八):查询文档、条件操作符
MongoDB 查询文档 MongoDB 查询文档使用 find() 方法. find() 方法以非结构化的方式来显示所有文档. MongoDB 查询数据的语法格式如下: db.collection. ...
- MongoDB 教程(七):插入文档、更新文档、删除文档
MongoDB 插入文档 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式 —— BSON是一种类json的二进制形式的存储格式,简称Binary JSON. MongoDB ...
- 某站出品2016织梦CMS进阶教程共12课(附文档+工具)
此为广告商内容使用最新版的dede cms建站 V5.7 sp1,经常注意后台的升级信息哦!一.安装DEDE的时候数据库的表前缀,最好改一下,不用dedecms默认的前缀dede_,随便一个名称即可. ...
- MongoDB基础教程系列--第四篇 MongoDB 查询文档
查询文档 查询文档可以用 find() 方法查询全部文档,可以用 findOne() 查询第一个文档,当然还可以根据 条件操作符 和 $type操作符 查询满足条件的文档. find() 和 find ...
- 【Mongodb教程 第八课 】MongoDB 更新文档
MongoDB的 update() 和 save() 方法用于更新文档的集合. update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法. MongoDB Update( ...
- MongoDB(四):数据类型、插入文档、查询文档
1. 数据类型 MongoDB支持许多数据类型. 字符串 - 这是用于存储数据的最常用的数据类型.MongoDB中的字符串必须为UTF-8. 整型 - 此类型用于存储数值. 整数可以是32位或64位, ...
- mongodb查询文档
说到查询,我们一般就想起了关系型数据库的查询了,比如:order by(排序).limit(分页).范围查询(大于某个值,小于某个值..,in查询,on查询,like查询等待很多),同样mongodb ...
- MongoDB快速入门(四)- 插入文档
插入文档 将数据插入到MongoDB集合,需要使用MongoDB 的 insert() 方法. 语法 insert()命令的基本语法如下: >db.COLLECTION_NAME.insert( ...
- ElasticSearch入门 第五篇:使用C#查询文档
这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
随机推荐
- tensorflow-gpu install check
https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c#file-tensorflow_self_check-py-L16
- jvm 内存溢出 在myeclipse中加大tomcat的jvm内存 java.lang.OutOfMemoryError: PermGen space
使用myeclipse启动两个SSH2的部署在tomcat6下的项目 报出java.lang.OutOfMemoryError: PermGen space 解决办法: 在myeclipse中加大jv ...
- ASP.NetCore 错误 NU1605 检测到包降级: Microsoft.Data.Sqlite 从 2.2.1 降级到 2.1.0
找到使用的.csproj文件 将 <PackageReference Include="Microsoft.Data.Sqlite" Version="2.1.0& ...
- 使用Eclipse中的反编译插件jadClipse查看Class源码
功安装完插件jadClipse 之后便可以查看源码class文件了 但是对于自己代码的class文件,直接复制过来却看不到,需要以下操作. 将此文件以及文件夹直接拷贝到Eclipse中发现 右击项目- ...
- css module
来源:CSS Modules 用法教程 后面项目地址:https://github.com/947133297/lwj-webpack-demo 关键是打开这一行,表示开启loader的css mod ...
- 队列的JS实现及广度优先搜索(BFS)的实现
队列是先进先出(FIFO)的数据结构,插入操作叫做入队,只能添加在队列的末尾:删除操作叫做出队,只能移除第一个元素.在JS中,用数组可以很简单的实现队列.JavaScript实现排序算法 functi ...
- LeetCode(59)Length of Last Word
题目 Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return th ...
- 牛客网 牛可乐发红包脱单ACM赛 C题 区区区间间间
[题解] 我想到了两种解法. 一种是扫描线+线段树+单调栈. 另一种方法是O(n)的,比较巧妙. 考虑每个数在哪些区间可以作为最小数.最长的区间就是它向左右走,直到有数字比它小,这个可以用单调栈维护. ...
- 安装mysql后无法找到临时密码的解决方案
安装mysql后无法找到临时密码的解决方案 一.环境 系统:CentOS7mysql:5.7.20 二.解决步骤 step1:修改/etc/my.cnf添加: skip-grant-tables ...
- python3 时间复杂度
时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道.但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就 ...