数据库管理
创建数据库
MongoDB创建数据库的语法格式如下:
use DATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库。
如果想查看所有数据库,可以使用 show dbs 命令。可以看到,新创建的数据库并不在数据库的列表中, 要显示它,需要向此数据库插入一些数据。
MongoDB 中默认的数据库为test,如果没有创建新的数据库,集合将存放在test数据库中。
删除数据库
MongoDB删除数据库的语法格式如下:
db.dropDatabase()
删除当前数据库,默认为test,你可以使用db命令查看当前数据库名。
集合管理
创建集合
在MongoDB中,不需要显式创建集合。当插入文档时,如果集合不存在会自动创建该集合并插入文档。如显式创建,语法格式如下:
db.createCollection(name, options)
name是要创建的集合的名称,options为可选参数,是一个文档,用于指定有关内存大小和索引选项。完整的命令如下:
db.createCollection(name,{
capped: <Boolean>,
autoIndexId: <Boolean>,
size: <number>,
max<number>
})
options参数中各选项说明如下,
- capped: 是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
- autoIndexId: 是否使用_id作为索引,默认为使用(true或false)
- size: 限制集合使用空间的大小,默认为没有限制
- max: 集合中最大条数限制,默认为没有限制
(size的优先级比max要高)
如果想查看当前数据库所有集合,可以使用 show collections 命令。
删除集合
MongoDB删除集合的语法格式如下:
db.COLLECTION_NAME.drop()
文档管理
插入文档
文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
db.COLLECTION_NAME.insert(document)
示例,
db.col.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库' ,
tags: ['mongodb', 'database', 'NoSQL']
})
查看已插入文档:
db.col.find()
使用pretty(),则显示内容有缩进:
db.col.find().pretty()
也可以将数据定义为一个变量,再执行插入操作。
document = ({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
tags: ['mongodb', 'database', 'NoSQL']
});
db.col.insert(document)
插入文档也可以使用 save() 方法 。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
更新文档
MongoDB使用 update() 和 save() 方法来更新集合中的文档。
update()方法用于更新已存在的文档。语法格式如下:
db.COLLECTION_NAME.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query : update的查询条件,类似sql update查询内where后面的内容。
- update : update的对象和一些更新的操作符(如,<script type="math/tex" id="MathJax-Element-1">,</script>inc…)等,也可以理解为sql update查询内set后面的 内容。
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入。true为插入,默认是false,不插入。
- multi : 可选,默认是false,只更新找到的第一条记录。如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
示例,
db.col.update({‘title’:’MongoDB 教程’},{$set:{‘title’:’MongoDB’}})
save()方法通过传入的文档来替换已有文档。语法格式如下:
db.COLLECTION_NAME.save(
<document>,
{
writeConcern: <document>
}
)
参数说明:
- document : 文档数据。
- writeConcern : 可选,抛出异常的级别。
删除文档
MongoDB使用remove()函数移除集合中的数据。remove() 方法的基本语法格式如下所示:
db.COLLECTION_NAME.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档。 不设此参数时,删除所有符合条件的文档。
- writeConcern :(可选)抛出异常的级别。
示例,
db.col.remove({‘title’:’MongoDB 教程’})
如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:
db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
如果你想删除所有数据,可以使用以下方式(类似常规SQL的truncate 命令):
db.COLLECTION_NAME.remove({})