MongoDB系列----查
开启查询:
db.getMongo().setSlaveOk()
查版本:
db.servion();
db.serverBuildInfo();
db.serverStatus().storageEngine; //查询存储引擎类型
db.collection_name.totalIndexSize(); 查询该集合索引大小
db.collection_name.stats(); 查询集合的统计信息
1.查user集合中所有记录
db.user.find();
2.通过指定条件查
db.user.find({"uname":"zhangsan"});--查uname为zhangsan的记录
db.user.find({condition}) //查满足条件的记录数
3.条件操作符
>大于-----$gt
<小于-----$lt
>=大于等于-$gte
<=小于等于-$lte
例:
db.user.find({age:{$gt:22}});--查user集合中age大于22的数据
db.user.find({age:{$lt:22}});--查user集合中age小于22的数据
db.user.find({age:{$gte:22}});--查user集合中age大于等于22的数据
db.user.find({age:{$gt:17,$lt:24}});--查user集合中age大于17,小于24的数据
$ne 不等于
例:db.things.find( { x : { $ne : 3 } } ) //查x不等于3的记录
$nin 不属于
db.things.find({j:{$nin: [2,4,6]}}) //j不等于2,4,6中的任何一个 或者j不存在的记录
$in 属于
db.things.find({j:{$in:[2,4,6]}}) //条件相当于 j等于【2,4,6】中的任何一个 in只能处理一个key对应多个value的情况
$or 或者 --or用于处理 多个键中查询任意给定的值
db.things.find("$or":[{"j":{"$in":[2,4,6]}}, {"x":"zz"},]); //查j为2,4,6 或者 x为zz的记录
$size
$mod 取模运算
例:db.things.find( { a : { $mod : [ 10 , 1 ] } } ) //等同于 a%10==1; 即a除以10余1的记录
正则表达式查询
db.things.find(a:/^java/) // where a like ”java%“
db.things.find(a:/[7-9]/) // 当name为字符串 且包含7,8,9中任意一个数字 则会查询命中
5.条件操作符 $type
$type操作符是基于BSON类型来检索集合中匹配的结果
例:
db.user.find({name:{$type:2}});--查user集合中所有name字段是字符类型的数据
db.user.find({age:{$type:16}});--查user集合中所有age字段是整型的数据
6.获取指定数量的数据记录
limit()与skip()方法
格式:db.collection_name.find().limit(number)----查前number条记录
db.collection_name.find().limit(number).skip(number2);--查前number条记录,跳过前number2条
7.比较两个字段
{$where:"this.A!=this.B"}
{$where:"this.A==this.B"}
8.去重
db.collection_name.distinct("filed_name");
9.查空值
db.collection_name.find({age:null}) //可以查出age值为空和age字段不存在的记录
10.取ObjectId时间戳
ObjectId('3f56gsdse.....').getTimestamp();
-----------------------------------数组查----------------------------------------------
数据:
{ "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] }
{ "_id" : 2, "fruit" : [ "apple", "orange", "peach" ] }
{ "_id" : 3, "fruit" : [ "orange", "banana", "peach" ] }
1.$all 全部属于
db.things.find({a:{$all:[2,3]}}); //与$in类似,但必须是[]的值全部都存在
2.$elemMatch 至少有一个
例如:{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
执行:db.scores.find( { results: { $elemMatch: { $gte: 80, $lt: 85 } } }) //查results集合中至少有个数是 大于等于80并小于85 的记录
结果:{ "_id" : 1, "results" : [ 82, 85, 88 ] }
3.$size 按照数组长度查询(元素个数)
db.collection_name.find({arryField:{$size:3}}) //查arryField数组长度为3的数据
4.输入一个元素查询
db.collection_name.find({fruit:'apple'})
结果: { "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] }
{ "_id" : 2, "fruit" : [ "apple", "orange", "peach" ] }
5.按照数组中指定位置的元素进行查询,注意数组下标的起始编号是0。
db.collection_name.find("fruit.1":'orange');
结果:{ "_id" : 2, "fruit" : [ "apple", "orange", "peach" ] }
管理
mongodb任务操作
currnetOp用于查询当前数据库上此时此刻的操作语句信息,包括CRUD等操作.
1.当查询超过1000秒的,停止:
db.currentOp().inprog.forEach(function(item){if(item.secs_running > 1000 )db.killOp(item.opid)})
2.停止某个数据源的查询:
db.currentOp().inprog.forEach(function(item){if(item.ns == "cswuyg.cswuyg")db.killOp(item.opid)})
3.把所有在等待锁的操作显示出来:
db.currentOp().inprog.forEach(function(item){if(item.waitingForLock)print(JSON.stringify(item))})
4.把处于等待中的分片显示出来:
db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){print(item.opid.substr(0,9));print(item.op);}})
5.查找所有的查询任务:
db.currentOp().inprog.forEach(function(item){if(item.op=="query"){print(item.opid);}})
6.查找所有的非查询任务:
db.currentOp().inprog.forEach(function(item){if(item.op!="query"){print(item.opid);}})
7.查找所有的操作:
db.currentOp().inprog.forEach(function(item){print(item.op, item.opid);});
查DB中collection的数量
db.system.namespaces.count()
MongoDB系列----查的更多相关文章
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
- MongoDB系列之二(主动复制)
目前我正在进行MongoDB的双机热备方面相关的工作.根据我目前看到的MongoDB方面的材料,MongoDB的实际部署有三种方式,分别是“主动复制”,“副本集”以及“分片副本集”. 首先我们从最简单 ...
- mongodb系列之---副本集配置与说明
在配置副本集之前,我们先来了解一些关于副本集的知识. 1,副本集的原理 副本集的原理与主从很相似,唯一不同的是,在主节点出现故障的时候,主从配置的从服务器不会自动的变为主服务器,而是要通过手动修改配置 ...
- MongoDB 系列文章
MongoDB 系列文章 本文的内容是基于 MongoDB 4.0 的. 参考于 MongoDB 4.0 官方文档. 搭建 MongoDB从搭建到优化 MongoDB-副本集搭建与管理 管理 Mong ...
- mongoDB系列之(二):mongoDB 副本集
1. 什么是副本集 副本集就是mongoDB副本所组成的一个集群. 同期原理是,写操作发生在主库,从库同步主库的OpLog日志. 集群中没有特定的主库,主库是选举产生,如果主库down了,会再选举出一 ...
- mongodb系列之-治理mongodb->db.currentOp()
mongodb系列之-管理mongodb->db.currentOp() 管理mongodb->db.currentOp(), 绝对是原创... 今天公司的dba在内部分享了针对mysql ...
- 14.MongoDB系列之配置分片
1. 启动服务器 1.1 启动配置服务器 配置服务器是集群的大脑,保存着关于每个服务器包含哪些数据的所有元数据,因此,必须首先创建配置服务器. 由于资源限制,在同一机器上启动三个进程 # mkdir ...
- MongoDB系列(三):增删改查(CURD)
上篇讲了MongoDB的基础知识,大家应该对MongoDB有所了解了,当然真正用的还是curd操作,本篇为大家讲解MongoDB的curd操作. 1.数据库操作 #.增 use config #如果数 ...
- MongoDB系列---用户及权限管理02
MongoDB-——Privilege 学习大纲: 1.用户权限管理 2.用户操作 知识回顾: 本系列上一篇博文我们讲述了如何搭建环境以及配置我们的MongoDB,通过搭建环境后我们又学习了如何通过 ...
随机推荐
- 探索Visual Studio生成的.vs文件夹内部结构和作用
这里直接先将我摸索出的结果贴出来,文章后面会一一详细说明和分析:.vs目录是用来存储当前用户在解决方案中的工作配置,具体包括VS关闭前最后的窗口布局.最后打开的选项卡/操作记录/文件文档.某些自定义配 ...
- vba 读取数据库
1.安装数据库 2.创建数据源 Private Sub Worksheet_Change(ByVal Target As Range) Then Call mySQL End If End Sub P ...
- web理论知识--网页访问过程(附有Django的web项目访问流程)
当我们闲暇之余想上网看看新闻,或者看个电影,通常的操作是:打开电脑.打开浏览器.输入网址.浏览页面信息.点击自己感兴趣的连接......那么有没有想过,这些网页从哪里来的?过程中计算机又做了什么事情了 ...
- css变量使用
CSS中的变量给了我们诸多优点:方便.代码重用.更可靠的代码库和提升防错能力.(此句转) 变量虽好用,但是兼容是在不怎么样:点这里查看. 一.变量的声明 :root { --base-font-siz ...
- [Web]Restful风格的适用场景
最近一直在兜兜转转Restful的相关内容,准备在原先的项目上构建restful的API. 实践过程很别扭,直到看到这篇文章[A Brief Introduction to REST], 我才终于断定 ...
- js 执行顺序
同步任务 异步任务 同步任务:立即执行 异步任务:进入到异步队列当中(Event Queue)eg:Ajax,SetTimeout,then,SetInterval Event loop 事件循环 T ...
- MBA 拓展训练总结
1. 拓展训练,大家绑腿跑 沟通时间极短, 规则制定不完善, 对方'王者队'沟通很好, 女队练习的同时, 男队边观看边练习, 效率很高, 由于之前王者输的比较多, 总结很多, 所以执行力也占优了, 我 ...
- Oracle 触发器 trigger
触发器: 当用户登录/退出或者操作某个数据对象或者进行DDL(建表,建view)引起某个储存过程的值的变化,把这个隐含被调用的过程,称为触发器. 语法 CREATE OR REPLACE TRIGGE ...
- DEV中右键菜单如何只在非空单元格上显示?
问题: 1. 开发时,我的winform程序中有很多gridview,我希望右键菜单只在我点击非空的行时才显示,点击其他空白区域时不显示: 2. 有一个树状导航图,treelist 中的节点都有右键菜 ...
- LeetCode 70 - 爬楼梯 - [递推+滚动优化]
假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2输出: 2解释: 有两种方 ...