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({}) 删除集合所有数据

原文地址:https://www.cnblogs.com/lishixiang-007/p/11273586.html

时间: 2024-07-29 21:52:56

MongoDB常用数据库命令第二集的相关文章

MongoDB常用数据库命令第一集

1.查询操作(1)Help查看命令提示helpdb.help()db.test.help()db.test.find().help()(2)创建/切换数据库use music(3)查询数据库show dbs(4)查看当前使用的数据库db/db.getName()(5)显示当前DB状态db.stats()(6)查看当前DB版本db.version()(7)查看当前DB的链接机器地址db.getMongo()(8)删除数据库db.dropDatabase() 2.集合操作:(1)创建一个聚集集合db

mongodb常用数据操作

1. shell操作 mongodb默认连接的是test数据库, 输入db,可以看到当前数据库为test, 接下来是常用的数据库操作 ????mongodb存储按照文档方式存储,各种操作均采用json格式串进行, ????????可以理解为. mongodb的集合就是关系数据库的表,集合里面可以装各种类型的数据,包括集合. ? ????show databases:显示数据库以及数据库所占空间. 简写为show dbs; ????use [dbname]: 选择数据库 ????show coll

MongoDB之数据库命令操作(二)

现在详细学习一下mongodb的数据库操作. 查询语句 db.xxx(集合name).find() # 查询 db.xxx(集合name).findOne() # 只返回一个 db.xxx(集合name).findOne().pretty() # 返回结果格式化 # 比较运算符 等于,默认是等于判断,没有运算符,如:db.xxx(集合name).find({name:"xiao"}) 小于$lt,如:db.xxx(集合name).find({age:{$lt:30}}) 小于或等于$l

Mongodb数据库命令端常用操作

查询操作 Mongodb-SpringMvc下Query数据库操作SQL http://blog.csdn.net/xiaohulunb/article/details/27828381 1.查询所有 > db.foo.find() { "_id" : ObjectId("5389aa1df06b88aaa313746a"), "name" : "yiwa", "age" : 25, "us

【Mongodb教程 第十七课 】MongoDB常用命令 数据库命令 集合操作命令

(1)数据库命令 a)添加用户 db.addUser(‘name’,’pwd’) b)删除用户 db.removeUser(‘name’) c)用户验证 db.auth(‘name’,’pwd’) d)拷贝数据库,从test库拷贝  db.copyDatabase(‘test’,’mydb’) e)删掉数据库 db.dropDatabase() f)获取数据库下所有集合 db.getCollectionNames() g)停止mongo服务 db.shutdownServer() h)使用某个数

每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作

准备工作 继续连接到mongo C:\Users\zouqi>mongo MongoDB shell version: 3.0.7 connecting to: test 查看数据库和集合 > show dbs demo 0.078GB local 0.078GB myDatabase 0.078GB myTest 0.078GB > use myTest switched to db myTest > show collections persons system.indexes

MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本

介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一种特殊类型的查询来实现的,这些查询针对$cmd集合来执行.runCommand仅仅是接受命令文档,执行等价查询. >db.runCommand({"drop":"test"}) 上面的命令等价于下面的查询: >db.$cmd.findOne({"d

MongoDB学习笔记-数据库命令

概念 数据库命令(database command)是一种非常特殊类型的查询.文档的创建.更新.删除及查询都属于数据库命令的范畴,它还包含管理性的任务(比如关闭服务器和克隆数据库).统计数据及执行聚合操作等. runCommand函数 通常,只使用shell提供的函数就可以了,但是了解它们底层的命令是很有帮助的.尤其是当使用就版本shell连接到新版本的数据库上时,这个shell可能不支持新版数据库的一些命令,这时就不得不使用“数据库命令”的runCommand函数.使用方式:db.runCom

MongoDB丢数据问题的分析

坊间有很多传说MongoDB会丢数据.特别是最近有一个InfoQ翻译的Sven的一篇水文(为什么叫做水文?因为里面并没有他自己的原创,只是搜罗了一些网上的博客,炒了些冷饭吃),其中又提到了丢数据的事情.大家知道作为一个数据库来说,数据的持久性基本上是数据库的最低要求了.如果MongoDB真的有那么糟糕的数据安全问题,它早就在技术选择众多的今天被无情地淘汰掉了.那么真相到底如何呢? 实事求是地来说,MongoDB确实在其发展的过程中,有一些数据持久化的问题没有处理好,特别是一些默认值的选定上.大部