开启查询:

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系列----查的更多相关文章

  1. MongoDB系列(二):C#应用

    前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...

  2. MongoDB系列之二(主动复制)

    目前我正在进行MongoDB的双机热备方面相关的工作.根据我目前看到的MongoDB方面的材料,MongoDB的实际部署有三种方式,分别是“主动复制”,“副本集”以及“分片副本集”. 首先我们从最简单 ...

  3. mongodb系列之---副本集配置与说明

    在配置副本集之前,我们先来了解一些关于副本集的知识. 1,副本集的原理 副本集的原理与主从很相似,唯一不同的是,在主节点出现故障的时候,主从配置的从服务器不会自动的变为主服务器,而是要通过手动修改配置 ...

  4. MongoDB 系列文章

    MongoDB 系列文章 本文的内容是基于 MongoDB 4.0 的. 参考于 MongoDB 4.0 官方文档. 搭建 MongoDB从搭建到优化 MongoDB-副本集搭建与管理 管理 Mong ...

  5. mongoDB系列之(二):mongoDB 副本集

    1. 什么是副本集 副本集就是mongoDB副本所组成的一个集群. 同期原理是,写操作发生在主库,从库同步主库的OpLog日志. 集群中没有特定的主库,主库是选举产生,如果主库down了,会再选举出一 ...

  6. mongodb系列之-治理mongodb->db.currentOp()

    mongodb系列之-管理mongodb->db.currentOp() 管理mongodb->db.currentOp(), 绝对是原创... 今天公司的dba在内部分享了针对mysql ...

  7. 14.MongoDB系列之配置分片

    1. 启动服务器 1.1 启动配置服务器 配置服务器是集群的大脑,保存着关于每个服务器包含哪些数据的所有元数据,因此,必须首先创建配置服务器. 由于资源限制,在同一机器上启动三个进程 # mkdir ...

  8. MongoDB系列(三):增删改查(CURD)

    上篇讲了MongoDB的基础知识,大家应该对MongoDB有所了解了,当然真正用的还是curd操作,本篇为大家讲解MongoDB的curd操作. 1.数据库操作 #.增 use config #如果数 ...

  9. MongoDB系列---用户及权限管理02

    MongoDB-——Privilege 学习大纲: 1.用户权限管理 2.用户操作 知识回顾:  本系列上一篇博文我们讲述了如何搭建环境以及配置我们的MongoDB,通过搭建环境后我们又学习了如何通过 ...

随机推荐

  1. RabbitMQ 消息队列 二

    一:查看MQ的用户角色 rabbitmqctl list_users 二:添加新的角色,并授予权限 rabbitmqctl add_user xiaoyao 123456 rabbitmqctl se ...

  2. Python_多线程threading模块

    python 在执行的时候会淡定的在CPU上只允许一个线程运行,故Python在多核CPU的情况下也只能发挥出单核的功能,其中的原因:gil锁 gil 锁 (全局解释器锁):每个线程在执行时都需要先获 ...

  3. BZOJ3257 [Zjoi2014]力 多项式 FFT

    原文链接http://www.cnblogs.com/zhouzhendong/p/8762639.html 题目传送门 - BZOJ3527 题意 给出长度为$m$的序列$q_{1..m}$,让你输 ...

  4. Ubuntu16.04 14.04安装配置Caffe(GPU版)

    caffe配置过程很长啊,坑非常多,没有linux基础的估计会香菇的.我参考了网上很多的帖子,基本上每个帖子都有或多或少的问题,研究很久最终配置成功.参考过的帖子太多,都记不太清来源了.为了对前人的感 ...

  5. python面向对象编程进阶

    python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...

  6. JavaScript DOM事件模型

    早期由于浏览器厂商对于浏览器市场的争夺,各家浏览器厂商对同一功能的JavaScript的实现都不进相同,本节内容介绍JavaScript的DOM事件模型及事件处理程序的分类. 1.DOM事件模型.DO ...

  7. ASP.NET Core 3.0预览版体验

    目前.NET Core 3.0的版本为.NET Core 3.0 Preview 3,对应ASP.NET Core 3.0 Preview 3. ASP.NET Core 3.0 之后将不再支持.NE ...

  8. 省市区地址三级联动jQuery插件Distpicker使用

    插件下载地址 http://www.jq22.com/jquery-info8054 效果如下: 使用: 1.引入js <script src="http://www.jq22.com ...

  9. vue调用Moment显示时间

    1.下载 Moment 网站: http://momentjs.cn/ 2创建一个vue的文本格式    admin.vue 3.定义给值 代码如下 <template> <div ...

  10. linux下利用C或C++ 语言调用需要root权限的函数

    1.setuid法(1)登录root用户,将程序设置成root:root所有者(等价于:登录root用户编译程序).也可直接将普通用户加入root组中,那么编译程序不用来回切换用户.(2)登录root ...