返回 登录
0

MongoDB快速入门教程

注:由于内容太长了,但总体来说还算不错的入门教程。需要更多详细请看原文:
MongoDB教程
MongoDB是一个跨平台,面向文档的数据库,提供高性能,高可用性和易于扩展。MongoDB是工作在集合和文档上一种概念。

MongoDB是一个跨平台,面向文档的数据库,提供高性能,高可用性和易于扩展。MongoDB是工作在集合和文档上一种概念。

数据数
数据库是一个集合的物理容器。每个数据库获取其自己设定在文件系统上的文件。一个单一的MongoDB服务器通常有多个数据库。

集合
集合是一组MongoDB的文件。它与一个RDBMS表是等效的。一个集合存在于数据库中。集合不强制执行模式。集合中的文档可以有不同的字段。通常情况下,在一个集合中的所有文件都是类似或相关目的。

文档
文档是一组键值对。文档具有动态模式。动态模式是指,在同一个集合的文件不必具有相同一组集合的文档字段或结构,并且相同的字段可以保持不同类型的数据。

示例文档
下面给出的示例显示了一个博客网站,仅仅是一个逗号分隔的键值对的文档结构。

{
_id: ObjectId(7df78ad8902c)
title: ‘MongoDB Overview’,
description: ‘MongoDB is no sql database’,
by: ‘yiibai tutorial’,
url: ‘http://www.yiibai.com‘,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100,
comments: [
{
user:’user1’,
message: ‘My first comment’,
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:’user2’,
message: ‘My second comments’,
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
在Windows上安装MongoDB

要在Windows上安装MongoDB,首先从 http://www.mongodb.org/downloads 下载 MongoDB 的最新版本

现在,提取下载的文件到c:\ 驱动器或其他位置。 确保压缩文件夹名称是 mongodb-win32-i386-[version] 或 mongodb-win32-x86_64-[version]. 这里 [version] 是MongoDB的下载版本。

现在,打开命令提示符并运行以下命令

C:>move mongodb-win64-* mongodb
1 dir(s) moved.
C:>
如果提取 mondodb 在不同的位置,然后进入这个路径通过命令 cd FOOLDER/DIR 现在运行上面给出的过程。

下面是简单的安装步骤,第一步:

第二步:选择自定安装(可以自己定义安装目录)

第三步:选择安装目录

第四步:选择安装目录

第五步:安装完成!

如果安装 MongoDB 在不同的位置(建议安装到 D:\software),那么需要设置路径 dbpath 在 mongod.exe 指向 data 备用路径。请看看下面的命令

在命令提示符下导航到bin目录,当前到 MongoDB 的安装文件夹。本教程中安装文件夹是(为了保持与本教程一致,建议也安装到这个目录,如果你喜欢折腾,那我拦也拦不住):D:\software

C:\Users\yiibai>d:
D:>cd “software”
D:\software>cd MongoDB\Server\3.0\bin
D:\software\MongoDB\Server\3.0\bin> mongod.exe –dbpath “d:\software\MongoDB\Server\3.0\data”
这将显示在等待连接的控制台输出消息,指示 mongod.exe 成功运行过程。

现在运行的MongoDB,需要打开一个命令提示符,发出以下命令

D:\software\MongoDB\Server\3.0\bin>mongo.exe
MongoDB shell version: 3.0.4
connecting to: test

db.test.save( { a: 1 } )
db.test.find()
{ “_id” : ObjectId(5879b0f65a56a454), “a” : 1 }

这将显示已安装的 MongoDB 并成功运行。下一次当您要运行 MongoDB 只需要发出命令:

D:\software\MongoDB\Server\3.0\bin>mongod.exe –dbpath “d:\software\MongoDB\Server\3.0\data”
D:\software\MongoDB\Server\3.0\bin>mongo.exe
出现错误:

D:\software\MongoDB\Server\3.0\bin>mongod.exe –dbpath “d:\software\MongoDB\Server\3.0\data”

2015-07-11T08:47:22.896+0800 I CONTROL Hotfix KB2731284 or later update is not
installed, will zero-out data files
2015-07-11T08:47:22.896+0800 I STORAGE [initandlisten] exception in initAndList
en: 29 Data directory d:\software\MongoDB\Server\3.0\data not found., terminating

解决办法:在d:\software\MongoDB\Server\3.0\目录下创建一个新目录:data
注:再新打开一个命令行窗口,用于执行 MongoDB 各种命令。

创建数据库

MongoDB use DATABASE_NAME 用于创建数据库。该命令如果数据库不存在,将创建一个新的数据库, 否则将返回现有的数据库。

语法
use DATABASE语句的基本语法如下:

use DATABASE_NAME
例子:
如果想创建一个数据库名称为 , 那么 use DATABASE 语句应该如下:

use mydb
switched to db mydb
要检查当前选择的数据库使用命令 db

db
mydb
如果想查询数据库列表,那么使用命令 show dbs.

show dbs
local 0.78125GB
test 0.23012GB
所创建的数据库(mydb)不存在于列表中。要显示的数据库,需要至少插入一个文档进去。

db.movie.insert({“name”:”yiibai tutorials”})
show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
MongoDB的默认数据库是test。 如果没有创建任何数据库,那么集合将被保存在测试数据库。

删除数据库

MongoDB db.dropDatabase() 命令用于删除现有的数据库。

语法
dropDatabase()指令的基本语法如下:

db.dropDatabase()
这将删除选定的数据库。如果没有选择任何数据库,那么它会删除默认的“test”数据库

例子:
如果想删除新的数据库 , 那么 dropDatabase() 命令将如下所示:

use mydb
switched to db mydb
db.dropDatabase()
{ “dropped” : “mydb”, “ok” : 1 }

创建集合

MongoDB 的 db.createCollection(name, options) 用于创建集合。 在命令中, name 是要创建集合的名称。 Options 是一个文档,用于指定集合的配置

参数 类型 描述
Name String 要创建的集合的名称
Options Document (可选)指定有关内存大小和索引选项
选项参数是可选的,所以需要指定集合的唯一名字。

语法
createCollection()方法的基本语法如下

use test
switched to db test
db.createCollection(“mycollection”)
{ “ok” : 1 }

可以通过使用 show collections 命令来检查创建的集合

show collections
mycollection
system.indexes
选项列表
字段 类型 描述
capped Boolean (可选)如果为true,它启用上限集合。上限集合是一个固定大小的集合,当它达到其最大尺寸会自动覆盖最老的条目。 如果指定true,则还需要指定参数的大小。
autoIndexID Boolean (可选)如果为true,自动创建索引_id字段。默认的值是 false.
size number (可选)指定的上限集合字节的最大尺寸。如果capped 是true,那么还需要指定这个字段。
max number (可选)指定上限集合允许的最大文件数。
尽管插入文档,MongoDB首先检查字段集合的上限大小,那么它会检查最大字段。

语法 :

db.createCollection(“mycol”, { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
{ “ok” : 1 }

在MongoDB中并不需要创建集合。 当插入一些文档 MongoDB 会自动创建集合。

db.yiibai.insert({“name” : “yiibai”})
show collections
mycol
mycollection
system.indexes
yiibai

删除集合

MongoDB 的 db.collection.drop() 用于从数据库中删除集合。

语法
drop() 命令的基本语法如下

db.COLLECTION_NAME.drop()
例子:
下面给出的例子将删除给定名称的集合:mycollection

use mydb
switched to db mydb
db.mycollection.drop()
true

插入文档

将数据插入到MongoDB集合,需要使用MongoDB 的 insert() 方法。

语法
insert()命令的基本语法如下:

db.COLLECTION_NAME.insert(document)
例子
db.mycol.insert({
_id: ObjectId(7df78ad8902c),
title: ‘MongoDB Overview’,
description: ‘MongoDB is no sql database’,
by: ‘yiibai tutorials’,
url: ‘http://www.yiibai.com‘,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100
})
这里 mycol 是我们的集合名称,它是在之前的教程中创建。如果集合不存在于数据库中,那么MongoDB创建此集合,然后插入文档进去。

在如果我们不指定_id参数插入的文档,那么 MongoDB 将为文档分配一个唯一的ObjectId。

_id 是12个字节十六进制数在一个集合的每个文档是唯一的。 12个字节被划分如下:

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
要以单个查询插入多个文档,可以通过文档 insert() 命令的数组方式。

例子

db.post.insert([
{
title: ‘MongoDB Overview’,
description: ‘MongoDB is no sql database’,
by: ‘yiibai tutorials’,
url: ‘http://www.yiibai.com‘,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100
},
{
title: ‘NoSQL Database’,
description: ‘NoSQL database doesn’t have tables’,
by: ‘yiibai tutorials’,
url: ‘http://www.yiibai.com‘,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 20,
comments: [
{
user:’user1’,
message: ‘My first comment’,
dateCreated: new Date(2013,11,10,2,35),
like: 0
}
]
}
])
查询文档

要从集合查询MongoDB数据,需要使用MongoDB的 find()方法。

评论