mongodb--读操作
Mongodb读数据操作
Mongodb读数据(文档documents)操作有连个方法
>find();
>findOne();
find()方法是最主要的方法,find方法返回一个指向包含查询结果集数据的游标(cursor)
标准命令是:db.collection.find(<query>, <projection> )
其中<query>相当于sql语句中的where 条件语句;
<projection>相当于要取出的字段。
这里要注意的是,如果不指明query那么指的是查出全部的数据;
还可以查询一个条件多个值的情况
Eg:db.test.find({_id :{$in:[1565,ObjectId(“564b408cf3e596a45ed9d243”)] }})
稍微复杂点的查询:
db.test.find({
awards: {$elemMatch: {award: 'test',year: { $gt: 2000 } } }}
)
这个意思是查询awards数组中,award 字段是test,并且 year字段 大于2000 的所有数据;其中$gt 意思是(greater than )
有意思的是mongodb的查询 就连顺序都得是和数据里的一样
比如这么个查询:
>db.test.find({name:{first:’aaa’,last:’bbb’}}).
如果数据库里存的是{last:’bbb’,first:’aaa’}它也是查不出来的;切记!
如果要查name的first是aaaa,name的last是bbbb,还可以这样
db.test.find({ ‘name.first’:’aaa’,’name.last’:’bbb’}) 用对象的”.”这种方式来做,这也是为什么mongdb的数据字段的名字不能包含$ 和. 的原因之一。这可是它的特殊保留语法关键字字符呐;
如果要查带“或者”条件,那就要用关键字$or
>db.test.find({ $or :[ { ‘name.last’:/^dd/ } , { birth:{ $lt : newDate(‘01/01/1990’) } } ] })
这个查询意思是 :查询 name的last的已dd开始的数据,或者查出birth 笑语1900-01-01的数据 。$lt (lessthan 缩写)
指定返回那些字段 通过<projection>
db.bios.find({ },
{ name: 1, contribs: 1, _id: 0 }
)
1 代表此数据作为结果返回,0表示过滤掉此数据。_id除非显示写0指定不返回,否则会默认返回;
Find方法返回的是一个指向数据集合的游标,这个游标有
next, hasNex,forEach方法
遍历所有结果可以这么使用:
Var cur = db.test.find(); cur.forEach(printjson);
或者 while(cur.hasNext())printjson(cur.next());
如果要排序,那么使用sort()
Eg:db.test.find().sort({_id:1}); 1表示asc ,0 表示desc
如果指定多少个 则使用limit()
Eg:db.test.find().limit(5)表示只要前5个;
同样也有skip() 方法去掉前几个;
而findOne(),顾名思义,就是find()方法的一个特例,它只会返回第一个;
mongodb--读操作相关推荐
- MongoDB——读操作事务
由于MongoDB是一个分布式数据库,因此我们在读取数据的过程中需要关注以下两个问题: 从哪里读?关注数据节点位置 什么样的数据可以读?关注数据的隔离性 接下来我们引入了两个参数:readPrefer ...
- mongodb netcore 操作封装_mongodb 的基本函数语法封装
//这个模块里面封装了所有对数据库的常用操作 var MongoClient = require('mongodb').MongoClient; var config = require(" ...
- mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡
配置mysql+lvs+keeplived实现Mysql读操作的负载均衡 环境: test1192.168.46.131master test2192.168.46.130slave备份test库 t ...
- MongoDB简单操作
MongoDB简单操作 Hadoop核心技术厂商Cloudera将在2014/06推出hadoop Ecosystem与MongoDB的整合产品,届时MongoDB与ipmala及hbase,hive ...
- Assembly of long, error-prone reads using repeat graphs 使用重复图组装长且容易出错的读操作
使用重复图组装长且容易出错的读操作 精确的基因组装配受到重复区域的阻碍.尽管长单分子测序读序列比短读序列能够更好地解决基因组重复,但大多数长读序列装配算法并没有提供产生最佳装配所需的重复特征. 在这里 ...
- LSM树——LSM 将B+树等结构昂贵的随机IO变的更快,而代价就是读操作要处理大量的索引文件(sstable)而不是一个,另外还是一些IO被合并操作消耗。...
Basic Compaction 为了保持LSM的读操作相对较快,维护并减少sstable文件的个数是很重要的,所以让我们更深入的看一下合并操作.这个过程有一点儿像一般垃圾回收算法. 当一定数量的ss ...
- MongoDB 聚合操作
MongoDB 聚合操作 在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多 ...
- mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡
mysql主从复制的实现 1.MySQL复制的实现原理 MySQL支持单向.双向复制.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入一个二进制日志文 ...
- PHP操作mongodb数据库操作类
最近的项目开发中使用的数据库是mongodb数据库,因为小编的公司也是刚刚使用mongodb数据库,所以之前没有封装好的mongodb数据库操作类拿来使用,所以小编在项目中自己封装了一个mongodb ...
- 【Qt】modbus之TCP模式读操作
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 读Coils程序示例 04. 读DiscreteInputs程序示例 05. 读InputRegisters程序示例 06 ...
最新文章
- 北京五环以内将全面禁止新建和扩建数据中心
- 【机器学习】集成学习之boosting AdaBoost
- python 异常处理_异常处理 — Python 3.7.9 文档
- Ubuntu系统上安装微信(legacy)
- linux 文件管理命令
- 【渝粤教育】国家开放大学2018年春季 8618-21T燃气行业规范 参考试题
- leetcode 198 动态规划
- keil5破解安装包下载及STM32固件包下载
- java操作cad_java调用AutoCAD绘图
- 全国ps计算机考试时间,全国计算机考试一级PS考试大纲
- U盘格式化的不同选择——FAT32,NTFS和exFAT
- PDF转PNG高清不失帧
- 甲骨文数据库购买的价格(三)-附x86价格
- linux制作deepin启动盘制作工具,深度启动盘制作工具(Deepin Boot Maker)
- C语言中getchar()函数的详解
- SEO单个网页的最优化操作
- Vbs-Js_Vir
- hackthebox-shock(考点:shellshock perl提权)
- 数据仓库——数据采集与同步【系统埋点设计】
- i春秋 WEB 123
热门文章
- VM安装centos7并远程连接
- 全自动高清录播服务器,全高清高清录播服务器 自动高清录播系统 真正零布线 即装即用...
- 6-4 求一组数中的最大值、最小值和平均值
- excel 两组数据交点_如何在百万级的数据里找到别人正在赚钱的项目?【实操长文】...
- 企业级开发:Gitflow Workflow工作流
- 我论矩阵 矩阵变换的飞跃 三 理解矩阵变换 (终)站在对立面 一扇新的大门
- python权限管理设置_python权限管理框架
- mysql如何清空表
- Oracle同义词(Synonym)创建删除
- 李晓慧:如何利用MongoDB打造爆款小程序