开启查询:

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()

最新文章

  1. .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
  2. Bash 中的 _ 是不是环境变量
  3. Java import以及Java类的搜索路径
  4. Stanford机器学习笔记-9. 聚类(Clustering)
  5. Webwork 学习之路【04】Configuration 详解
  6. View绑定式监听器实现原理
  7. 完整cocos2d-x编译Andriod应用过程
  8. _CrtIsValidPointer 问题
  9. SPOJ DQUERY:D-query
  10. mysql数据类型——时间类型
  11. NAS4Free 配置BT下载
  12. C++ Primer Plus 6 第一章
  13. 会话机器人Chatbot的相关资料
  14. .NET CORE 使用Session报错:Session has not been configured for this application or request
  15. Java线程池ThreadPoolExecutor原理和用法
  16. MFC读写配置ini文件
  17. 转载:margin外边距合并问题以及解决方式
  18. Python学习之旅(十七)
  19. WinForm timer 控件
  20. == equals hashCode 总结比较

热门文章

  1. vue 解决IE不能用的问题
  2. POJ 1149 PIGS 【最大流】
  3. YII2 用 in查询的时候出现无结果, 删除某些值后查询有结果 提前sort数组即可
  4. img标签与span一起使用不在同一条线上
  5. NOIP-无线网路发射器选址
  6. [LeetCode] Insert into a Cyclic Sorted List 在循环有序的链表中插入结点
  7. python +ps 三方面库整理
  8. c#中string的一些基本用法
  9. Rabbitmq消息持久化
  10. maven jdk版本