Table of Contents
Mongodb 简介
MongoDB 是一款强大,灵活,且易于扩展的通用型数据库。
它能够扩展出非常多的功能,如二级索引,范围查询,排序,聚合以及本地空间索引的功能
基本概念
Mongodb 是一个面向文档的NoSQL型数据库,不采用关系模型。 其中mongodb 不再有“行”的概念,而是以文档取而代之。
另外也不存在预定义模式,即文档的键(key)和值(value)不再是固定的类型和大小
数据库(database)
Mongodb 的一个实例可以拥有多个相互独立的数据库,
在Mongodb中,多个文档组合成集合,而多个集合即组成数据库。
文档(document)
Mongodb 中的数据的基本单元,类似于关系型数据库管理系统中的行
表示形式:
{“greeting”:“Hello World”, …. }
集合(collection)
类似的,可以看作是一个拥有动态模式的表
基本设计
Mongodb 的设计采用横向扩展。同时面向文档的数据模型
使它能够很容易的在多台服务器之间进行数据分割。
MongoDB 启动
通常,MongoDB做为网络服务守护进程运行,客户端可连接到该服务器并执行操作。
下载MongoDB(http://www.mongodb.org/downloads)
解压,并运行 mongod 命令
启动后,在默认情况下服务器会打印版本和系统信息,并监听27017端口。
除此之外 mongod 还会启动一个非常基本的HTTP服务器,监听比主端口号高1000的端口
这意味着你可以访问 http://localhost:28017 来获取数据库管理信息
MongoDB shell 简介
MongoDB 自带JavaScript Shell,可以在shell中用命令行与Mongodb实例交互
运行shell
mongo
MongoDB Shell version: 2.4.0
connecting to :test
>
shell 是一个功能完备的JavaScript解释器,可以运行任意JavaScript程序,另外还可以充分使用JavaScript的标准库
MongoDB 客户端
在客户端的shell启动后,如果要查看db当前执行哪个数据库,可以使用 db 命令
> db
test
MongoDB 基本操作
创建
insert 函数可以将一个文档添加到集合中。举一个存储文章的例子:首先,
创建一个名为post的局部变量,这是一个JavaScript对象,用于表示我们的文档
他会有几个键:“ title ”、“ content ”和 “ date ”(发布时间)
> post = {
"title":"hello",
"content":"Here's my blog post",
"date":new Date()
}
> db.blog.insert(post)
此时,这篇文章已经存到数据库中了,要查看它可用调用集合的 find 方法
> db.blog.find()
读取
find 和 findOne 可以接收一个 查询文档 为限定条件,并返回符合一定条件的文件,使用
find 的默认自动显示最多20个匹配的文档。
更新
使用 update 修改文章:
update接收(至少)两个参数: - 第一个是限定条件(用于匹配待更新的文档) - 第二个是新的文档
例如我们为之前的文章增加评论功能,就需要新增一个键,用于保存评论数组。
> post.comments = []
[ ]
> db.blog.update({ title : "hello"} , post)
再用 find 查看一下,就可以看见新的键。
> db.blog.find()
删除
使用remove方法可以将文档从数据库中永久删除。如果没用任何参数传入,他将删除集合内的全部文档。
同时,它可以接收一个做为限定条件的文档做为参数。例如:
> db.blog.reomve({ title : "hello" })
有关Mongodb的简单描述到此结束,更多Mongdb使用操作内容,欢迎参考下一篇文章