mongoDB常用
登陆{
本地的话直接mongo,如果是docker直接就这样docker exec -it 2d71a13e3128 mongo
或者直接这样 mongo 127.0.0.1:27017
}
退出是 {
exit
}
database级操作{
查看服务器上的数据库{
show dbs
}
切换数据库 {
use data
}
查看所有集合{
show collections
}
创建数据库 {
mongo中创建数据库采用的也是use命令,如果use后面跟的数据库名不存在,那么mongo将会新建该数据库。不过,实际上只执行use命令后,mongo是不会新建该数据库的,直到你像该数据库中插入了数据。use test2
db.hello.insert({"name":"testdb"}) 该操作会在test2数据库中新建一个hello集合,并在其中插入一条记录
}
查询{
db.getCollection('数据集合').find({条件})
如果想格式化输出,可以直接后面追加.pretty()
}
删除当前数据库 {
db.dropDatabase() **/在主服务器上操作的时候要慎重
}
查看当前数据库{
db
}
}
collection级操作
{
新建collection{
db.createCollection("Hello") [直接向一个不存在的Collection里写一条数据,会默认直接创建这个Collection]
}
删除collectio{
db.Hello.drop()
}
重命名{
db.hello2.renameCollection("HELLO")
}
查看当前数据库中的所有collection{
show collections
}
建立索引在HELLO集合上,建立对ID字段的索引,1代表升序。{
db.HELLO.ensureIndex({ID:1})
}
}
Record级的操作
{
插入{
向A集合中插入两条记录{
db.A.insert({'name':'Gal Gadot','gender':'female','age':28,'salary':11000})
db.A.insert({'name':'Mikie Hara','gender':'female','age':26,'salary':7000})
}
同样也可以用save完成类似的插入操作 {
db.A.save({'name':'Wentworth Earl Miller','gender':'male','age':41, 'salary':33000})
}
}
查找{
查找A集合中的所有记录{
db.A.find()
}
Exact Equa:查找集合中的符合条件的记录{
单一条件:查询age为了28的数据. db.A.find({'age':28})
}
Great Than:大于{
查询salary大于10000的数据 db.A.find({salary:{$gt:10000}})
}
Fuzzy Match:包含{
查询name中包含'l'的数据 db.A.find({name:/l/})
查询name以G打头的数据 db.A.find({name:/^G/})
}
查找条件是某个字段是否存在{
查找A集合中存在ID字段的{
db.A.find({ID:{$exists:true}})
}
}
多条件"与"{
查询age小于30,salary大于10000的数据
db.A.find({age:{$lt:30},salary:{$gt:10000}})
}
多条件“或”{
查询age小于30,或者salary大于10000的记录
db.A.find({$or:[{salary:{$gt:10000}},{age:{$lt:30}}]})
}
查询第一条记录 findOne(){
返回上面的那个例子的第一条db.A.findOne({$or:[{salary:{$gt:10000}},{age:{$lt:30}}]})
}
查询记录的指定字段{
只显示name字段(没有name的只显示_id,有的同时显示_id和name) db.A.find({},{name:1})
}
查询指定字段的数据,并去重{
查询gender字段的数据,并去掉重复数据 db.A.distinct('gender')
}
对查询结果集的操作{
Pretty Print {
Mongo里面有两个格式化输出方法{
db.collection.pretty()
db.collection.forEach(printjson)
}
指定结果集显示的条目{
显示结果集中的前3条记录{
db.A.find().limit(3)
}
查询第2条以后的所有数据(跳过){
db.A.find().skip(2)
}
对结果集排序{
按照salary字段进行升序或者降序排序,如果没有salary字段的话,就默认为最小,比负数还小,就当他是无穷小。
db.A.find().sort({salary:1})
db.A.find().sort({salary:-1})
}
输出结果条数{
db.A.find().count()
}
删除数据{
删除集合里所有数据 db.A.remove({})
删除定义了y字段的数据 db.test.remove({y:{$exists:true}})
也可以只删除固定条数db.test.remove({x:{$exists:true}},1)
tip:
db.collection.remove是删除了集合中所有的记录,原有的索引等信息还在,而db.collection.drop()是把整个集合都删除掉(包括索引)
}
}
更新操作{
db.collection.update(criteria, objNew, upsert, multi )
criteria:update的查询条件,类似sql update查询内where后面的
objNew:update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的。
upsert : 如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新
例子{
db.test.update({x:'x'},{$set:{x:'2'}},false,false) 把集合test中x='x'的中的x改成‘2’,如果没有找到就不该,并且如果找到多条,只改动第一条
db.test.update({x:'x'},{$set:{x:'2'}},false,true) 跟上面的区别是如果找到多条,那么全都改动。
db.test.update({x:'x'},{$set:{w:'2'}},true,true) 跟上一条的区别是,如果没查到x:'x'那么久单独创建一条记录,如果查到了x:'x'但是没有w这个字段,那么就创建这个字段。同时如果条件是不等式那样的条件,那么当创建新的记录的时候,不会出现条件字段。只会出现后面的设置的字段。比如
db.test.update({w:'x'},{$set:{q:'2'}},true,true) 如果不存在w这个字段,则是创建新的记录 {w:'x',q:'2'},而
db.test.update({w:{$lt:30}},{$set:{q:'2'}},true,true) 如果不存在w字段,那么创建新的一条数据{q:'2'}其中是没有w字段的。
}
}
}
$gt:大于
$lt:小于
$gte:大于或等于
$lte:小于或等于
不等于 $ne
这里还有一篇其他小伙伴整理的
https://blog.csdn.net/AlbertFly/article/details/83001012
mongodb中的insert和save的区别
https://blog.csdn.net/qq_38603247/article/details/82633745
官方文档
https://docs.mongodb.com/manual/storage/
mongoDB常用的更多相关文章
- (转)mongodb常用命令脚本化-自动化运维
mongodb常用命令脚本化-自动化运维 把一些运维中常用到的mongodb命令写成shell脚本,极大的方便了维护 1 设置副本集 #!/bin/bash#mongodb 进入client ...
- mongodb常用操作语句
mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...
- mongodb 常用的命令
mongodb 常用的命令 对数据库的操作,以及登录 1 进入数据库 use admin 2 增加或修改密码 db.addUser('wsc', '123') 3查看用户列表 db.system.us ...
- MongoDB 常用的几大GUI工具
MongoDB 常用的几大GUI工具 MongoDBCompass (官方的连接工具),免费的,界面简洁,不支持 sql 查询,支持性能监控.支持在三大平台 Windows .Mac .Linux 上 ...
- mongodb常用语句(集合操作)
mongodb常用语句(集合操作) 查看集合帮助 db.songs.help(); 查看集合总数据量 db.songs.count(); 查看表空间大小 db.songs.dataSize(); 查看 ...
- mongodb常用命令学习笔记
mongodb常用命令学习笔记 创建数据库 use DATABASE_NAME eg: use users; 如果数据库不存在,则创建数据库,否则切换到指定数据库.要显示刚刚创建的数据库,需要向数据库 ...
- MongoDB常用操作命令大全
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作.输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令 如:如果你想创建一个 ...
- MongoDB常用命令
本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell.pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程. MongoDB的使用之前也分享过一篇, ...
- MongoDB常用操作
(备注: 对于 window, 不需要sudo) 验证成功与否: * 启动服务器: $sudo mongod --dbpath C:\data\db (需要 指明数据库存放的目录) * 打开shell ...
- mongodb常用命令【转】
mongodb由 C++编写,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理.关于它的一个最简洁描述为:scalable, high-performance, ...
随机推荐
- 记客户端WebBrowser控件修改版本的问题
保留在本地电脑的一篇记录,第二条描述是在网上看来的,忘记在哪看的了,也就没注明出处,望见谅. 1.Winform内置浏览器控件的底层调用与系统IE浏览器的底层调用相同. 2.IE8 对渲染引擎做了很大 ...
- Jmeter +Jenkins +Ant 集成发送邮件报告
[TOC] 一.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系 ...
- POJ - 1163 The Triangle 【动态规划】
一.题目 The Triangle 二.分析 动态规划入门题. 状态转移方程$$DP[i][j] = A[i][j] + max(DP[i-1][j], DP[i][j])$$ 三.AC代码 1 #i ...
- 简要说一下.Net的编译过程.
看面试题的时候遇到这样一道题目,简要说明.NET的编译过程,在网上看了很多资料,简单总结如下: 1.一般的编译过程 通常高级语言的程序编译过程是:首先写好的程序是源代码,然后编译器编译为本地机器语言, ...
- x64dbg 条件断点相关文档
输入 字符格式 条件断点 Input When using x64dbg you can often use various things as input. Commands Commands ha ...
- 什么是SSR SSR有什么用 如何使用使用SSR
什么是SSR 以下信息来自维基百科: Shadowsocks(简称SS)是一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种开发包.当前包使用Python.C.C++.C#.Go语 ...
- Centos7安装以及设置Redis详细步骤
一.Redis安装: 1.指定文件夹下下载redis安装包: [root@bogon ~]# mkdir /usr/local/soft/redis [root@bogon ~]# cd /usr/l ...
- Java代码实现热部署
一.思路 0. 监听java文件最后修改时间,如果发生变化,则表示文件已经修改,进行重新编译 1. 编译java文件为 class文件 2. 通过手写类加载器,加载 class文件 ,创建对象 3. ...
- Python—关于Pandas缺失值问题(国内唯一)
获取文中的CSV文件用于代码编程以及文章首发地址,请点击下方超链接 获取CSV,用于编程调试请点这 在本文中,我们将使用Python的Pandas库逐步完成许多不同的数据清理任务.具体而言,我们将重点 ...
- [Fundamental of Power Electronics]-PART II-9. 控制器设计-9.5 控制器的设计
9.5 控制器设计 现在让我们来考虑如何设计控制器系统,来满足有关抑制扰动,瞬态响应以及稳定性的规范或者说设计目标.典型的直流控制器设计可以用以下规范定义: 1.负载电流变化对输出电压调节的影响.当负 ...