MongoDB的快速入门教程
发布日期:2016-4-22 13:4:2
MongoDB的快速入门教程 一、MongoDB教程 MongoDB简介:MongoDB为一个跨平台,面向文档的数据库,提供高性能,高可用性和易于扩展。MongoDB是工作在集合与文档上一种概念。 1.数据数 数据库:一个集合的物理容器。每个数据库获取其自己设定在文件系统上的文件。一个单一的MongoDB服务器通常有多个数据库。 2.集合 集合:一组MongoDB的文件。它与一个RDBMS表是等效的。也与mssql等效,一个集合存在于数据库中。集合不强制执行模式。集合中的文档可以有不同的字段。通常情况下,在一个集合中的所有文件都是类似或相关目的。 3.文档 文档:是一组键值对。文档具有动态模式。动态模式是指,在同一个集合的文件不必具有相同一组集合的文档字段或结构,并且相同的字段可以保持不同类型的数据。 示例: 下面给出的示例,功能是显示了一个博客网站,仅仅是一个逗号分隔的键值对的文档结构。代码如下所示: { _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 } ] } 4.在Windows上安装MongoDB 要在Windows上安装MongoDB,首先安装MongoDB 的最新版本 下载网站:http://www.mongodb.org/downloads 现在,把我们下载的文件提取到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 各种命令。 5.创建数据库 MongoDB use DATABASE_NAME 用于创建数据库。该命令如果数据库不存在,将创建一个新的数据库, 否则将返回现有的数据库。 5.1语法 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。 如果没有创建任何数据库,那么集合将被保存在测试数据库。
6.删除数据库 MongoDB db.dropDatabase() 命令用于删除现有的数据库。 6.1语法 dropDatabase()指令的基本语法如下所示: db.dropDatabase() 这将删除选定的数据库。如果没有选择任何数据库,那么它会删除默认的“test”数据库,类似mssql 举例: 如果想删除新的数据库 , 那么 dropDatabase() 命令,代码如下面所示: use mydb switched to db mydb db.dropDatabase() { “dropped” : “mydb”, “ok” : 1 } 7.创建集合 MongoDB 的 db.createCollection(name, options) 用于创建集合。 在命令中, name 是要创建集合的名称。 Options 是一个文档,用于指定集合的配置 参数 类型 描述
7.1语法 createCollection()方法的基本语法如下,代码如下所示: use test switched to db test db.createCollection(“mycollection”) { “ok” : 1 } 可以通过使用 show collections 命令来检查创建的集合,代码如下所示: show collections mycollection system.indexes 选项列表 字段 类型 描述
尽管插入文档,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 8.删除集合 MongoDB 的 db.collection.drop() 用于从数据库中删除集合。 8.1 语法 drop() 命令的基本语法如下所示; db.COLLECTION_NAME.drop() 举例: 下面给出的例子将删除给定名称的集合:mycollection use mydb switched to db mydb db.mycollection.drop() true 9.插入文档 将数据插入到MongoDB集合,需要使用MongoDB 的 insert() 方法。 9.1语法 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 } ] } ]) 10.查询文档 查询方法:要从集合查询MongoDB数据,需要使用MongoDB的 find()方法。
|