db(没有切换数据库的情况下,默认使用test数据库)
show dbs 或 show databases
db_name为show dbs后返回的数据库名
db.dropDatabase()
解析:db 不出现test数据库的原因,因为test库是虚拟的,除非插入数据,跟use 表名 创建库的原理一样,库没有被储存在磁盘中
无需手动创建集合:向不存在的集合中第一次添加数据时,集合会自动被创建出来
手动创建集合:
db.createCollection(name,options)
db.createCollection("stu")
db.createCollection("sub",{capped:true,size:10})
解析:
参数capped:默认值为false表示不设置上限,值为true表示设置上限
参数size:集合所占用的字节数,当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位:字节
查看集合:show collections
删除集合:db.集合名称.drop()
检查集合是否设定上限:db.集合名.isCapped()
在一个数据库软件中可以包含多个数据仓库,在每个仓库中可以包含多个数据集合,每个数据集合可以包含多条文档(具体的数据)
术语 | 解释说明 |
---|---|
database | 数据库,mongoDB数据库软件中可以建立多个数据库 |
collection | 集合,一组数据的集合,可以理解为JavaScript中的数组 |
document | 文档,一条具体的数据,可以理解为JavaScript中的对象 |
field | 字段,文档中的属性名称,可以理解为JavaScript中的对象属性 |
新建数据库
use 数据库名
添加集合
db.createCollection(集合名)
添加数据
db.集合名.insert({name:'张三',age20})
添加多条:
db.info.insert({name:'张三',age:20},{name:'zhangsan',age:20},{name:'zhangsan',age:20})
删除数据
db.集合名.remove({查询条件}):删除所有满足条件的数据
db.集合名.deleteMany({查询条件}):删除所有满足条件的数据
db.集合名.deleteOne({查询条件}):删除满足条件的第一条数据
修改(更新)数据
db.集合名.update({查询条件},{$set:{修改内容}})
示例:
db.movie.update({name:'zhangsan'},{$set:{age:20}})
注意:
update只修改满足查询条件的第一条数据(比如name=zhangsan的人有很多,但是只修改第一条)
db.集合名.updateMany({查询条件},{$set:{修改内容}})
注意:修改所有满足条件的数据
db.集合名.updateOne({查询条件},{$set:{修改内容}})
修改满足条件的第一条数据
查询数据
db.集合名.find()
db.集合名.find().pretty()
注意:pretty()没有实际的含义,仅在命令行或查询客户端中可用,在代码中不可用
db.集合名.find({查询条件})
且: db.info.find({name:'lisi',age:20})
查询info中name等于lisi 且 age等于 20 的数据,如果不存在则没有返回
或 :db.info.find({$or[{name:'lisi',age:25},{name:'王五'}]})
非:db.info.find({name:{$ne:'lisi'}})
查询info集合中name不等于lisi的数据
删除集合
db.集合名.drop():删除指定集合
查询集合
show collections:显示当前数据库的集合列表
查询数据库
show dbs:列出当前所有的数据库,默认列出(admin,config和local三个数据库)
db:显示当前正在操作的数据库(默认是test,因为test数据库里面没有数据,所以test没有在show dbs命令中显示)
删除数据库
db.dropDatabase():删除数据库(需要使用use先切换到被删除的数据库上)