MongoDB实战(二):MongoDB的基本命令

数据库常用命令

use db:切换/创建数据库,数据库存在时则切换到该数据库,不存在时则创建该数据库

show dbs:查询所有数据库,此时发现并没有刚才创建的mydb数据库,这是因为mongodb只有在该数据库插入数据时才会真正创建

db.dropDatabase():删除当前使用的数据库

db.getName():查看当前db的名字

db.stats():查看当前db的状态,包括集合数量,平均文档大小,数据大小,索引数量和大小等

db.version():当前db版本

db.repairDatabase():修复当前数据库,该命令可以整理碎片,回收磁盘空间,注意整理期间会加锁

db.copyDatabase(“db1”,“db2”,“ip”):从指定IP上复制db1的数据到本机的db2

集合常用命令

db.createCollection(name,options):创建一个集合

name参数:集合的名字

options参数:可选项,可选以下值

字段类型描述
capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参 数。
autoIndexId布尔(可选)如为 true,自动在 _id 字段创建索引。默认为 true。
size数值(可选)为固定集合指定一个最大值(以字节计)。 如果 capped 为 true,也需要指定该字段。
max数值(可选)指定固定集合中包含文档的最大数量。

  • 此时再查看数据库,发现mydb数据库已经创建

show collections:显示当前数据库的集合

db.collectionName:使用某个集合

db.collection.count():查看集合的记录条数

db.collection.dataSize():查看集合数据大小

db.collection.totalIndexSize();查看集合索引大小

db.collection.totalSize():查看集合总大小

db.collection.renameCollection("newName"):集合重命名

db.collection.drop():删除当前集合

文档常用命令

db.user.insert({"name":"lzx","age":21,"sex":"男"}):插入文档

db.user.save({"name":"lzx","age":21,"sex":"男"}):保存文档,如果文档不存在会自动创建

save和insert的区别在于save不但具有插入功能,还具有更新功能,如果不存在则插入,存在则更新,而insert如果存在会报错

数据是否重复是根据_id字段判断

  • 之所以可以插入两条同样的数据,是因为插入时未指定_id字段,自动生成的id不一致

  • 当指定相同id插入时,抛出异常

  • 即便修改年龄字段,只要id字段重复,依旧抛出异常

  • 利用save方法进行年龄的更新

db.users.find():查看文档

更新文档:

mongoDB中更新文档可以通过db.collection.save()或者db.collection.update()来更新

save之前已经介绍过了,需要指定_id字段去查询对应记录进行更新

db.collection.update(查询条件,整个文档或者修改器,upsert:boolean,multi:boolean或mutli文档,writeConcern:异常信息等级)

查询条件是传入文档的部分信息用来定位需要修改的文档,查询条件语句与find中的查询方式一致

第二个参数是整个文档或者修改器,当参数是整个文档时,传入的文档替换已有的文档,如果是修改器时,只做对应的修改

upsert参数可选,这个参数的意思是如果不存在需要更新的记录,是否写入新文档,默认false

mutli参数可选,这个参数的意思是更新找到的几条记录,默认false,只更新扎到的第一条记录,true则符合条件的全部更新

writeConcern参数可选,抛出异常的级别,作用是保障更新操作的可靠性

  • 该语句的意思是更新name为"lzx"的文档,将age更新为18,sex更新为none,如果没找到符合条件的文档也不插入,如果找到符合条件的全部更新,响应结果为符合条件的2个文档,0个插入,2个更新。

删除文档:

db.collection.remove(查询条件,justOne:boolean,writeConcern:异常信息等级):删除文档

第一个参数为查询条件

第二个参数为是否仅删除一个,默认false,删除全部符合条件的文档

writeConcern参数可选,抛出异常的级别,作用是保障更新操作的可靠性

  • 删除name为lzx的文档,响应结果为删除了两个文档

查询满足条件的文档的个数

db.collection.count(查询条件)

  • pretty方法是将查询的结果格式化

索引常用命令

创建索引:

db.collection.createIndex(keys,options):3.0之后版本

db.collection.ensureIndex(keys,options):3.0之前版本

keys是你要创建的索引字段,1升序,-1降序,可以指定多个字段创建组合索引

options参数是可选参数,可选值如下:

参数类型描述
backgroundboolean建索引过程会阻塞其它数据库操作,background可指定以后台方式 创建索引,即增加 "background" 可选参数。 "background" 默认 值为false。
unique Boolean  建立的索引是否唯一。指定为true创建唯一索引。默认值为false
name string索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序 顺序生成一个索引名称。
dropDups Boolean 3.0+版本已废弃。在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false.
sparse Boolean对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如 果设置为true的话,在索引字段中不会查询出不包含对应字段的文 档.。默认值为 false.
expireAfterSeconds integer 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间
vindex version索引的版本号。默认的索引版本取决于mongod创建索引时运行的版 本。
weights document索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索 引字段的得分权重。
default_languagestring对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语
language_overridestring对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认 的language,默认值为 language.

  • 创建一个name为firstIndex的组合索引,索引字段为name升序,age降序

查看集合所有索引:db.users.getIndexes()

查看集合总索引大小:db.users.totalIndexSize()

读取当前集合的所有Index信息:db.users.reIndex()

删除指定索引:db.users.dropIndex("name")

删除集合所有索引:db.users.dropIndexs()

  • _id字段的索引无法删除,会默认生成主键索引

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值