1. 基本操作
-
进入指定的数据库:
use 数据库
如果数据库不存在,则创建数据库,否则切换到指定数据库
-
显示所有的数据库:
show dbs
数据库中没有数据时,在数据库列表中并不显示
-
显示数据库中所有的集合:
show collections
创建集合(数据表)后要插入一个文档(记录),集合才会真正创建
-
显示当前所在的数据库:
db
默认的数据库为test,如果没有创建新的数据库,集合将存放在test数据库中
2. 向数据库中插入文档
-
向集合中插入一个或多个文档:
db.collection.insert()
,db.collection.save()
如果不指定 _id字段save()方法类似于insert()方法;如果指定 _id字段,则会更新该 _id的数据
-
向集合中插入一个文档:
db.collection.insertOne()
-
向集合中插入多个文档:
db.collection.insertMany()
3. 查询数据库中的文档
-
创建集合:
db.createCollection(name,options)
name:要创建的集合名称
options:可选参数,指定有关内存大小及索引的选型;可以是如下参数:
字段 类型 描述 capped 布尔 (可选)如果为true,则创建固定集合;固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档;当该值为true时,必须指定size参数 autoIndexId 布尔 (可选)如为true,自动在_id字段创建索引;默认为false size 数值 (可选)为固定集合指定一个最大值(以字节计); 如果capped为true,也需要指定该字段 max 数值 (可选)指定固定集合中包含文档的最大数量 在插入文档时,MongoDB首先检查固定集合的size字段,然后检查max字段
例子:
db.createCollection("coll", {capped:true, autoIndexId:true, size:6142800, max:10000})
-
可以根据条件从集合中查询所有符合条件的文档,返回的是一个数组:
db.collection.find()
find() 方法以非结构化的方式显示所有文档
-
以格式化的方式显示所有文档:
db.collection.find().pretty()
-
查询第一个符合条件的文档,返回的是一个对象:
db.collection.findOne()
-
查询符合条件的文档的数量:
db.collection.find().count()
4. 修改数据库中的文档
-
可以修改、替换集合中的一个或多个文档:
db.collection.update()
,db.collection.save()
update() 方法用于更新已存在的文档
db.collection.update( <query>, <update>, { upsert:<boolean>, multi:<boolean>, writeConcern:<document> } ) 参数说明: query:update的查询条件,类似sql update查询内where后面的 update:update的对象和一些更新的操作符(如$、$inc...)等,也可以理解为sql update查询内set后面的 upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入 multi:可选,mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来的多条记录全部更新 writeConcern:可选,抛出异常的级别
save() 方法通过传入的文档来替换已有文档
db.collection.save( <document>, { writeConcern:<document> } ) 参数说明: document:文档数据 writeConcern:可选,抛出异常的级别
-
修改集合中的一个文档:
db.collection.updateOne()
-
修改集合中的多个文档:
db.collection.updateMany()
-
替换集合中的一个文档:
db.collection.replaceOne()
5. 删除集合中的文档
-
删除集合中的一个或多个文档(默认删除多个):
db.collection.remove()
db.collection.remove( <query>, { justOne:<boolean>, writeConcern:<document> } ) 参数说明: query:(可选)删除的文档的条件 justOne:(可选)如果设为true或1,则只删除一个文档,如果不设置该参数,或使用默认值false,则删除所有匹配条件的文档 writeConcern:可选,抛出异常的级别
-
删除集合中的一个文档:
db.collection.deleteOne()
-
删除集合中的多个文档:
db.collection.deleteMany()
-
清空一个集合:
db.collection.remove({})
类似常规SQL的truncate命令
-
删除一个集合:
db.collection.drop()
-
删除一个数据库:
db.dropDatabase()
删除当前数据库,默认为test