MongoDB常用数据库命令第二集
=======================基础命令=======================
mongo    进入数据库操作界面
db       查看当前使用的数据库
show dbs 查看当前已经被创建出来的数据库 //local 0.000GB
         当数据库内容为空时 是不展示出来的,有内容时才会展示出来
use xxx 切换到指定名字的数据库(即使数据库不存在 也可以切换成功,但是切换成功后,数据库并不会立即被创建出来 只是暂时挂名 - 惰性机制)
db.dropDatabase() 删除当前数据库 (如需要删除指定数据库 需要切换过去再来删除)
db.getCollectionNames() 查询当前数据库中一共有多少个集合
db.集合名.drop() 删除指定的集合 //返回true表示删除成功
=======================插入文档=======================
db.集合名.insert(文档)  向指定的集合插入文档
db.集合名.insert([文档1,文档2]) 插入多条数据时,可以用数组包裹多个文档
db.集合名.insertOne(文档) 仅插入一条文档
db.集合名.insertMany([文档1,文档2]) 插入多条数据
=======================查询集合=======================
db.集合名.find() 查询指定集合的所有文档(数据)
db.集合名.find(select,option) 根据条件来查询文档(数据)
select为对象类型:  用于设置查询条件
    option为对象类型: 
        当需要隐藏某用于设置查询结果显示的属性由哪些个属性值时 设置该属性值为0即可  例如:
                需要隐藏_id属性 : db.xxx.find({},{_id:0})
        当只需要显示某个属性值时,设置该属性值为1即可,其他属性默认隐藏(_id属性除外) 例如:
                只需要显示name属性:  db.xxx.find({},{name:1})
条件写法 - slelect:
        { 属性:{条件操作符:范围值} }
        例如: 选取所有年龄小于18
        {age : {$lt:18} }
常用条件操作符:
    $lt : 小于
    $lte : 小于等于
    $gt : 大于
    $gte : 大于等于
    $ne : 不等于  {age:{$ne:19}}
    $in : 包含其中一个  {age:{$in:[19,18,23]}} 选中所有年龄为19,18,23的人
    $nin : 不包含任意一个  {age:{$nin:[19,18,23]}} 只要年龄是19或者18或者23就不被选中
    $all : 包含所有 {friends:{$all:["xxx","yyy"]}}  只有friends属性同时包含xxx和yyy属性才会被选中
    $not : 取反  {age:{$not:{$lt:18}}}  取所有年龄不 小于18的数据 
    $mod : 取模(取余)  {age:{$mod:[5,2]}} 取所有年龄 模5余2的数据
// 插入多条数据
    db.user.insert([
        {name:"zhuiszhu",age:18,friends:["马云","习近","许家印","王健林"]},
        {name:"马云",age:48,friends:["雷军","张朝阳","任正非","许家印","王健林"]},
        {name:"马化腾",age:48,friends:["王思聪","张朝阳","任正非","张益达"]}
    ])
【条件的"或"和"且"】
    条件一 且 条件二
    .find({条件一,条件二})
        .find({age:{$gt:18},friends:{$in:["许家印"]}})
条件一 或 条件二
    .find({$or:[{条件一},{条件二}]})
        // 获取所有年龄小于等于18  或者朋友包含张朝阳的人
        .find({$or:[{age:{$lte:18}},{friends:{$in:["张朝阳"]}}]})
条件一 或 条件二  而且条件三
    .find({$or:[{条件一},{条件二}],条件三})
        // 查询所有品牌是宝马或者折扣高于9折 而且价格不超过40w的车型
        db.cars.find({$or:[{brand:"宝马"},{discount:{$lt:9}}],price:{$lte:400000}})
db.cars.insert([
        {brand:"宝马",type:"320i",price:340000,discount:8,speed:7.5},
        {brand:"宝马",type:"220i",price:320000,discount:8.5,speed:7.1},
        {brand:"宝马",type:"420i",price:500000,discount:9,speed:8.1},
        {brand:"奔驰",type:"c200",price:400000,discount:9.3,speed:8.5},
        {brand:"奔驰",type:"e300",price:600000,discount:8.8,speed:7.4},
        {brand:"凯迪拉克",type:"ats",price:350000,discount:7.5,speed:6.5},
        {brand:"奥迪",type:"A6L",price:540000,discount:7.4,speed:7.5},
        {brand:"宝骏",type:"320",price:50000,discount:7.4,speed:13.5},
        {brand:"宝骏",type:"510",price:80000,discount:8.4,speed:12.5},
        {brand:"五菱",type:"五菱宏光",price:30000,discount:9.4,speed:15.5}
    ])
.find().skip(n) 跳过n条数据再来取值
    .find().limit(n) 取头n条符合条件的数据
    .find().skip(m).limit(n) 跳过m条符合条件的数据之后再来取头n条符合条件的数据
    其中.skip()方法和.limit() 方法组合使用时 不需要关心顺序  无论哪个方法在前面 都是先跳过 再取值
.sort({属性:-1或1})
    对符合条件的数据按指定属性进行排序  值为-1代表降序 值为1代表升序 
    如果有多个键值对  例如: .sort({age:1,height:-1})
    则代表  优先按照年龄进行升序排序 当年龄相同时 则按照身高进行降序排序
    即 如果有多个排序条件 则优先按照第一条件进行排序 如果第一条件值相同时  则按照第二排序条件进行排序  可以此类推  设置多个排序条件
第n页  每页显示x条数据  查询最后一页的数据
    .find().limit(x).skip((n-1)*x)
db.student.insert([
        {name:"张三",age:18,height:188},
        {name:"尼古拉斯·赵四",age:20,height:188},
        {name:"王五",age:22,height:178},
        {name:"钱六",age:20,height:168},
        {name:"朱七",age:30,height:168},
        {name:"杨八",age:33,height:178}
    ])
=======================修改文档=======================
db.集合名.update(select,operate,option)
select为对象类型 作为需要被修改数据的筛选条件  用法同find()方法的第一个参数一样
    operate为对象类型 编写需要操作的动作语法
    option为对象类型 可选参数 其下有两个属性可选
        upsert(布尔值类型) :  如果查询的数据不存在  是否插入该条数据  默认false
        multi : 是否更新所有符合条件的数据  默认值为false(只更新第一条)
{$set:{name:"xxx"}}
修改器
    $set : 将新的值替换掉旧的值 如果操作的属性不存在时 会添加该属性
    $inc : 对原来的值进行加减操作 (正值为相加,负值为相减)
    $unset : 删除文档中的某个属性(即字段) 在做删除属性操作时 填入的值无论正负 结果均一样  正常删除属性
    适用于数组类型的修改器....
    $push : 向数组类型的数据中添加新的值
    $pushAll : 向数组类型的数据中添加多个元素
    $addToSet : 向数组类型的数据中添加新的值(和push的区别在于  如果数组内存在已有的值 则不会重复添加 如果原来的值存在重复  该方法也不会去除掉重复的值)
    $pop : 删除数组类型中的一个值 (默认从尾部删除 如果值为负值 则从头部删除) 
    $pull : 根据制定的条件进行删除数组内的元素
db.user.update({name:"马云"},{$pop:{friends:1}})从尾部删除
    db.user.update({name:"马云"},{$pop:{friends:-1}})从头部删除
对张三的年龄加一
    db.student.update({name:"张三"},{$inc:{age:-1}})
删除马云的好友:许家印(不在数组的头部 也不在数组的尾部)
    db.user.update({name:"马云"},{$pull:{friends:"许家印"}})
对所有年龄小于等于18的人  年龄加一
    db.user.update({age:{$lte:19}},{$inc:{age:1}},{multi:true})
=======================删除文档=======================
db.集合名.remove(select,option)
    select属性为对象类型: 用于设置删除条件
    option为可选参数  对象类型 
        justOne : 是否只删除第一个符合条件的数据  默认false(删除所有符合条件的数据)
db.user.remove({name:"赵四"})
db.user.remove({}) 删除集合所有数据
MongoDB常用数据库命令第二集的更多相关文章
- MongoDB常用数据库命令第一集
		
1.查询操作(1)Help查看命令提示helpdb.help()db.test.help()db.test.find().help()(2)创建/切换数据库use music(3)查询数据库show ...
 - MongoDB常用数据库命令第三集
		
show dbs 查看已经存在的数据库 use 数据库名 切换到指定的数据库(无论数据库是否存在 均可切换成功) db 查看当前数据库 db.getCollectionNames() 查看当前数据库下 ...
 - MongoDB之数据库命令操作(二)
		
现在详细学习一下mongodb的数据库操作. 查询语句 db.xxx(集合name).find() # 查询 db.xxx(集合name).findOne() # 只返回一个 db.xxx(集合nam ...
 - postgresql 常用数据库命令
		
连接数据库, 默认的用户和数据库是postgrespsql -U user -d dbname 切换数据库,相当于MySQL的use dbname\c dbname列举数据库,相当于mysql的sho ...
 - mongodb数据库命令
		
常用数据库命令汇总 Database Commands Api 下面简单列一下Shell常用的基本命令 启动连接Mongodb #带配置信息启动 mongod -f xxx.conf #连接 mong ...
 - 【Mongodb教程 第十七课 】MongoDB常用命令 数据库命令  集合操作命令
		
(1)数据库命令 a)添加用户 db.addUser(‘name’,’pwd’) b)删除用户 db.removeUser(‘name’) c)用户验证 db.auth(‘name’,’pwd’) d ...
 - MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本
		
介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一 ...
 - 每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作
		
准备工作 继续连接到mongo C:\Users\zouqi>mongo MongoDB shell version: 3.0.7 connecting to: test 查看数据库和集合 &g ...
 - MongoDB 数据库命令
		
数据库命令 连接成功后,默认使用test数据库 查看当前数据库名称 db 查看所有数据库名称,列出所有在物理上存在的数据库 show dbs 切换数据库,如果数据库不存在也并不创建,直到插入数据或创建 ...
 
随机推荐
- Samba应用案例
			
一.配置文件详解 Samba配置文件非常简洁明了,所有的设置都在 /etc/samba/smb.conf 配置文件中进行,通过对该配置文件的修改,可以将Samba配置为一台匿名文件服务器.基于账户的文 ...
 - 如何将MultipartFile转换成based4
			
public String test(MultipartFile file) throws Exception{ BASE64Encoder base64Encoder =new BASE64Enco ...
 - Nginx反向代理服务器的安装与配置
			
Nginx反向代理服务器的安装与配置 时间:10月19日 Nginx反向代理有不少需要我们解决的问题,其中有不少问题是基于安装上的问题,在安装完成后的相关调试也让很多人头疼不已.下面就向大家介绍有关于 ...
 - 记录Windows下文件操作记录
			
https://blog.csdn.net/huashuolin001/article/details/73863324
 - token的验证过程
			
1.用户向服务器发送用户名和密码. 2.服务端收到请求,验证用户名和密码. 3.验证成功后,服务端会签发一个token,并将这个token发送到客户端. 4.客户端收到token后将token存储起来 ...
 - TCP/IP协议总结
			
TCP/IP网络协议栈分为四层, 从下至上依次是: 链路层 其实在链路层下面还有物理层, 指的是电信号的传输方式, 比如常见的双绞线网线, 光纤, 以及早期的同轴电缆等, 物理层的设计决定了电信号传输 ...
 - 如何确定假设检验的样本量(sample size)?
			
在<如何计算假设检验的功效(power)和效应量(effect size)?>一文中,我们讲述了如何根据显著性水平α,效应量和样本容量n,计算功效,以及如何根据显著性水平α,功效和样本容量 ...
 - 【cf比赛记录】Educational Codeforces Round 77 (Rated for Div. 2)
			
比赛传送门 这场题目前三题看得挺舒服的,没有臃肿的题目,对于我这种英语渣渣就非常友好,但因为太急了,wa了两发A后才意识到用模拟(可以删了,博主真的是个菜鸟),结果导致心态大崩 ---- 而且也跟最近 ...
 - #ifndef #define #endif
			
在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误.在头文件中实用#ifndef #define #endif能避免头文件的重定 ...
 - kaggle house price
			
kaggle 竞赛入门 导入常用的数据分析以及模型的库 数据处理 Data fields 去除异常值 处理缺失值 分析 Utilities Exploratory Data Analysis Corr ...