【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"
}
>
时间: 2024-07-30 06:21:52

【Mongodb教程 第七课 】MongoDB 查询文档的相关文章

【Mongodb教程 第八课 】MongoDB 更新文档

MongoDB的 update() 和 save() 方法用于更新文档的集合. update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法. MongoDB Update() 方法 update()方法更新现有文档值. 语法: update() 方法的基本语法如下 >db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA) 例子 考虑以下数据mycol集合. { "_id" : Objec

mongodb(6):查询文档

find()方法 要从MongoDB集合查询数据,需要使用MongoDB的find()方法. 语法 find()命令的基本语法如下: >db.COLLECTION_NAME.find(document) Shell find()方法将以非结构化的方式显示所有文档. pretty()方法 要以格式化的方式显示结果,可以使用pretty()方法. 语法 > db.mycol.find().pretty() 示例 >db.mycol.find().pretty() { "_id&qu

MongoDB 查询文档随笔

由于之前只是使用 MongoDB 进行存储日志,没有做过分析,只做过通过 api 进行查询操作. 现在有场景需要使用连接工具直接查询分析.所以在此记录一下使用到的查询方法. MongoDB 查询文档使用 find() 方法. find() 方法以非结构化的方式来显示所有文档. 语法 MongoDB 查询数据的语法格式如下: db.collection.find(query, projection) query :可选,使用查询操作符指定查询条件 projection :可选,使用投影操作符指定返

mongodb查询文档

说到查询,我们一般就想起了关系型数据库的查询了,比如:order by(排序).limit(分页).范围查询(大于某个值,小于某个值..,in查询,on查询,like查询等待很多),同样mongodb同样也支持这些操作,只是语法不同,比如排序:mongodb里面使用了skip(field:1/-1)方法,下面就来一一介绍一下: 一.mongodb查询文档 1.查询文档之find() : 不加条件是查询集合全部的数据 语法:db.collectionName.find({条件},{field:tr

【v2.x OGE教程 11】 动画编辑器帮助文档

[v2.x OGE教程 11] 动画编辑器帮助文档 版本号 日期 作者 说明 1.0 2014-9-3 橙子游戏 文档创建       一.简单介绍 动画编辑器用于游戏动画的可视化编辑,支持序列帧动画和关键帧动画.通过解析生成的数据文件就可以获取动画信息,并能随时调整,以降低开发工作量.提高开发效率. 二.相关概念 1. 帧 帧是动画在某个时间点的状态.一系列的帧组成了动画的时间线.动画播放时.通过帧的切换,实现动画效果 2. 序列帧 序列帧组成序列帧动画,这样的动画中.仅通过静态图片的切换来实

火车票查询文档

火车票查询文档:可以查询到火车售票,车次,始发时间,地点,是否有座等一系列情况. 参见:http://www.haoservice.com/docs/25 { "error_code":"0", "reason":"Success", "result":[{ "sta_name":"北京北", "sta_ename":"beijingbe

【v2.x OGE教程 12】 关卡编辑器帮助文档

[v2.x OGE教程 12] 关卡编辑器帮助文档 一.简介 关卡编辑器用于游戏关卡界面元素的可视化编辑,包括元素的位置.尺寸以及其它自定义属性.通过解析生成的数据文件即可获取关卡信息,并能随时调整,以减少开发工作量,提高开发效率. 二.界面 主界面 图01_主界面 1) 画布 ① 简介 画布用于关卡元素的预览,并提供元素选择和坐标设置等功能:画布的尺寸与其正在显示的关卡的尺寸相同 图02_画布 ② 选择元素 a. 单选:鼠标左键单击即可选中单个元素,选中后的元素周围出现蓝色的方框,未选中的则为

【Mongodb教程 第六课 】MongoDB 插入文档

insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 语法 insert() 命令的基本语法如下: >db.COLLECTION_NAME.insert(document) 例子 >db.mycol.insert({ _id: ObjectId(7df78ad8902c), title: 'MongoDB Overview', description: 'MongoDB is no sql database',

【Mongodb教程 第十一课 】MongoDB 聚合

聚合操作过程中的数据记录和计算结果返回.聚合操作分组值从多个文档,并可以执行各种操作,分组数据返回单个结果.在SQL COUNT(*)和group by 相当于MongoDB的聚集. aggregate() 方法 对于在MongoDB中聚集,应该使用aggregate()方法. 语法: aggregate() 方法的基本语法如下 >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) 例子: 在集合中,有以下的数据: { _id: ObjectId(