mongdb总结

#清屏

cls   --windows

#操作数据库

show dbs      --查看所有数据库
use dbName    --使用已有的dbName数据库,或者创建新的数据库dbName,如果一个数据库没有表就不存在
db            --显示数据库名称

#操作集合

show collections                        --查询数据库所拥有的集合
db.createCollecton("collectionName")    --创建集合(表)
db.collectionName.drop()                --删除集合(表)
db.collection.renameCollection("newCollectionName")   --重新命名集合(表)

#操作文档

db.collectionName.insert({key:value,...})                       --插入文档(行)
db.collectionName.insertOne({key:value,...}) 
db.collectionName.insertMany( [ <document 1> , <document 2>, ... ]) 
db.collectionName.save({key:value,...})                         --插入或更新文档(行)
db.collectionName.find([{key:value,...}])                       --查询文档(行)
db.collectionName.findOne({key:value,...})                      --查询单个文档(行)
#db.collectionName.remove({key:value,...}[,option])               --过时的删除文档方法
db.collectionName.deleteOne({key:value,...})                      --删除一个文档
db.collectionName.deleteMany({key:value,...})                     --删除多个文档
db.collectionName.update({key:value,...},{key:value,...}[,option])         --替换文档
db.collectionName.update({key:value,...},{$set:{key:value,...}}[,option])  --更新字段
db.collectionName.update({key:value,...},{$rename:{key:newKey}})  --重新命名字段


#操作索引

db.collectionName.createIndex({key:±1,...}[,options])      --创建索引
#db.collectionName.ensureIndex(keys[,options])             --创建索引,从版本3.0.0开始不推荐使用
db.collectionName.reIndex([keys[,options]])                --重建索引db.collectionName.getIndexes()                             --查看集合所有索引
db.collectionName.totalIndexSize()                         --查看集合索引的总大小
db.system.indexes.find()                                   --查看数据库的索引
db.collectionName.dropIndex("INDEX-NAME")
db.collectionName.dropIndexes()


#分页

..skip(index).limit(size)  --分页 index从0开始

#排序   1和-1来指定排序的方式,其中1为升序排列,而-1是用于降序排列。

..sort({key:±1})          --skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是 sort()>skip()>limit()

#最大值、最小值

..sort({key:±1}).limit(1)
..aggregate([{$sort:{a:-1}},{$limit:1}])

#投影

..find({}, {key1:1,key2:0})                 --1用于显示字段,而0用于隐藏字段。
..aggregate([{$project:{key1:1,key2:0}}])   --默认会投影_id,不需要_id则设置_id:0

#别名

..aggregate([$project:{key2:"$key1"}})  


####查询
#比较操作符

$lt $gt $eq $ne $lte $gte $in $nin 
..find({key : {$gt : 100}})

#逻辑运算符

$or $and $not  $nor(!$not)
..find({$or:{key:value,..},..}) 

#元素查询运算符

$type  $exist
..find({key:{$type:2}})
或
..find({key:{$type:'string'}})

#求值查询

$expr  $mod  $regex /../  $text  $where   $jsonSchema(验证json数据)
..find({$expr:{$gt:["$key1","$key2"]}})                             --表达式查询
..find({key:{$mod,[4,1]}})  ..find({key:{$mod:[4,{$ne:1}]}})        --求余
..find({key:{$regex:/../,$options:'imxs'}) 或 ..find({key:/教/})    --正则表达式
..find({$text:{$search:"apple"}})                                   --在索引行查询字符串
..find({$where: function() { return this.key == 2;}});              --where函数

#数组查询操作

$all  $elemMatch $size
..find({keys:{$all:[2]}}  ..find({keys:{$all:[[2]]}}        --数组中包含所有值
..find({keys:{$elemMatch:{$lt:4,$gt:1}})                    --数组中匹配
..find({keys:{$elemMatch:{attrA:{$lt:4},attrB:{$gt:1}}})
..find({keys:{$size:2}})                                    --数组的长度

#位查询操作

$bitAllClear  $bitAllSet  $bitAnyClear  $bitAnySet
..find({a:{$bitsAllClear:[1,5]}})      --第一位和第五位为0(位数从低到高,从0开始计算)
..find({a:{$bitsAllClear:34}})         --00100010
..find({a:{$bitsAllSet:[1,5]}})        --第一位和第五位为1
..find({a:{$bitsAnyClear:[1,5]}})      --第一位或第五位为0
..find({a:{$bitsAnySet:[1,5]}})        --第一位或第五位为1

#备注

$comment
..find( { <query>, $comment: <comment> } )

#投影操作

$  $elemMatch  $meta  $slice
..find({keys:{$lt:2},{"keys.$":1})                    --$占位符代表数组中第一个匹配的元素,投影出该元素  
..find({keys:{$elemMatch:{$lt:4,$gt:1}})              --将数组符合条件的第一个元素投影出来..find({keys:value},{keys:{$slice:count}})            --数组元素裁剪
..find({keys:value},{keys:{$slice:[skip,limit]}})     --skip可以为负数

 

####更新

 

#聚合函数
$avg $sum(sum,count) $first $last $min $max


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript操作BOM简单案例

需要两个页面index.html和Test.html&#xff0c;可以直接运行&#xff0c;每个功能都已经注释完整&#xff0c;index.html页面的代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head…

Java中“/”,“.”所代表的文件路径

转载自 Java中“/”&#xff0c;“.”所代表的文件路径 我们在开发的过程中&#xff0c;经常会去读、写文件。在读写文件的时候&#xff0c;就不得不写文件的路径&#xff0c;使用相对路径的方式有两种&#xff1a;”/”和 “.” 。在写文件的路径的时候&#xff0c;需要了解一…

Hibernate框架(1)

1.Hibernate框架简述 Hibernate的核心组件 在基于MVC设计模式的JAVA WEB应用中&#xff0c;Hibernate可以作为模型层/数据访问层。它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA对象或PO(Persistent Object,持久化对象)映射到数据库中…

通过 Transifex 中文化开源软件

如果您对于汉化软件充满热情, 我软已经发布了以下的开源产品在 Transifex 平台&#xff0c;让社区的小伙伴们参与翻译以及审核: 如何参与? – Transifex 的新手 登录 Transifex 如果您第一次使用 Transifex, 您可以新建立一个账号或是通过您的 GitHub, Google 或 LinkedIn 账号…

JavaScript操作DOM元素

一、DOM&#xff1a; Document Object Model&#xff08;文档对象模型&#xff09; 二、DOM的分类&#xff1a; 1.DOM Core&#xff08;核心&#xff09; 2.HTML-DOM 3.CSS-DOM 三、节点属性&#xff1a; 1.lastElementChild:最后一个节点 2.firstElementChild:第一个节点 3.ne…

hibernate的lazy的使用

引用&#xff1a;https://blog.csdn.net/Vincent_yuan1991/article/details/53482487 一&#xff1a; lazy&#xff0c;延迟加载 Lazy的有效期&#xff1a;只有在session打开的时候才有效&#xff1b;session关闭后lazy就没效了。 lazy策略可以用在&#xff1a; 标签上&#x…

React中路由组件与一般组件

四、路由组件与一般组件 1.写法不同&#xff1a;一般组件&#xff1a;<Demo/>路由组件&#xff1a;<Route path"/demo" component{Demo}/>2.存放位置不同&#xff1a;一般组件&#xff1a;components路由组件&#xff1a;pages3.接收到的props不同&#…

第六期.Net开源社群联合分享--除了情结和价格,Azure最适合什么场景?等你来讲趟坑的实战经验!

嘿嘿&#xff0c;大家好啊&#xff01;好荣幸啊这一期&#xff0c;能够咱们.NET开源社区一块来做这次线上分享会。 我就是各位小伙伴可爱而且博学而且低调而且人见人爱花见花开而且谦虚但是经常口不择言的主持人老板娘Grace。 这次有新朋友&#xff0c;有老朋友&#xff0c;有…

jQuery选择器整理

第六章jQuery选择器一、jQuery选择器的分类&#xff1a; 1.基本选择器 2.层次选择器 3.属性选择器 4.基本过滤选择器 5.可见性过滤选择器 二、jQuery的基本选择器&#xff1a; ///基本选择器 //id选择器 //$("#div1").css(“background”,“red”); //class选择器 /…

遍历HashMap的四种方法

在Map集合中 values():方法是获取集合中的所有的值----没有键&#xff0c;没有对应关系&#xff0c; KeySet(): 将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键&#xff0c;再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通…

支付系统的防重设计

转载自 支付系统的防重设计 导读 “目前在互联网应用的大部分支付场景中&#xff0c;对接支付宝、微信移动支付产品这样需要用户参与支付流程的支付方式已经变得非常普遍&#xff0c;类似的还有PC端银行网银支付&#xff1b;而通过绑定用户银行卡、对接银行卡快捷支付通道直接…

React中antd的按需引入+自定主题

antd的按需引入自定主题 1.安装依赖&#xff1a;yarn add react-app-rewired customize-cra babel-plugin-import less less-loader2.修改package.json...."scripts": {"start": "react-app-rewired start","build": "react-app-…

Windows Server Containers 支持 Windows 开发者使用 Docker

在过去几年里&#xff0c;Docker 和容器已成为全球开发界和企业最热门的话题之一。去年秋天发布的 Windows Server 2016 支持 Windows 开发者使用容器&#xff0c;使得这一热门话题再次升温。Windows 和 Docker 是如何走到一起的&#xff1f; 一切始于 2014 年隆重举办的普吉特…

漫画:什么是二叉堆?(修正版)

转载自 漫画&#xff1a;什么是二叉堆&#xff1f;&#xff08;修正版&#xff09; 什么是二叉堆&#xff1f; 二叉堆本质上是一种完全二叉树&#xff0c;它分为两个类型&#xff1a; 1.最大堆 2.最小堆 什么是最大堆呢&#xff1f;最大堆任何一个父节点的值&#xff0c;都…

React路由组件传递参数

向路由组件传递参数 1.params参数路由链接(携带参数)&#xff1a;<Link to/demo/test/tom/18}>详情</Link>注册路由(声明接收)&#xff1a;<Route path"/demo/test/:name/:age" component{Test}/>接收参数&#xff1a;this.props.match.params2.se…

jQuery选择器案例之——index.js

$(function(){//alert(a);///基本选择器//id选择器//$("#div1").css("background","red");//class选择器//$(".p1").css("color","red");//标签选择器//$("p").css("color","red")…

漫画:什么是堆排序

转载自 漫画&#xff1a;什么是堆排序 在上一篇漫画中&#xff0c;小灰介绍了 二叉堆 这样一种强大的数据结构&#xff1a; 漫画&#xff1a;什么是二叉堆&#xff1f;&#xff08;修正版&#xff09; 那么&#xff0c;这个二叉堆怎样来使用呢&#xff1f;我们这一期将会详…

监控——《微服务设计》读书笔记

在单块应用的世界里&#xff0c;当我们遇到问题时&#xff0c;我们至少清楚从哪里开始调查。网站访问速度&#xff1f;网站访问异常&#xff1f;CPU占用过高&#xff1f;这些都是单块应用程序的问题&#xff0c;单一的故障点会极大地简化对问题的排查。 而现在我们面对了多个微…

React中的模糊匹配与精准匹配

路由的严格匹配与模糊匹配 1.默认使用的是模糊匹配&#xff08;简单记&#xff1a;【输入的路径】必须包含要【匹配的路径】&#xff0c;且顺序要一致&#xff09;2.开启严格匹配&#xff1a;<Route exact{true} path"/about" component{About}/>3.严格匹配不要…