MongoDB基础教程

MongoDB基础教程
MongoDB基础教程

MongoDB基础教程

第一部分

翻译原因

网上的相关说明别说中文了连英文都很少,而且有的基本上就是一些简单的配置,加上最近时间比较多,有点想做,所以就做了。

致谢

先感谢国家,谢谢国家对我的培养,再感谢组织,感谢我的公司给我了研究MongoDB 的机会,让我有时间去研究了MongoDB,最后感谢父母的养育之恩。

温馨提示

我以下所有示例都是建立在Java语言的基础上,只作java语言的介绍,其他语言类似。

概述

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

*面向集合存储,易存储对象类型的数据。

*模式自由。

*支持动态查询。

*支持完全索引,包含内部对象。

*支持查询。

*支持复制和故障恢复。

*使用高效的二进制数据存储,包括大型对象(如视频等)。

*自动处理碎片,以支持云计算层次的扩展性

*支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。

*文件存储格式为BSON(一种JSON的扩展)

*可通过网络访问

所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。

模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。

存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized

dOcument Format)。

MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。

注意:以上概述部分摘自百度百科https://www.360docs.net/doc/9c7705982.html,/view/3385614.htm

第二部分

基础知识(重点)

快速入门

快速入门Unix系统

安装MongoDB

先根据自己的系统下载自己需要的版本,然后解压即可

32位Linux

$ curl https://www.360docs.net/doc/9c7705982.html,/linux/mongodb-linux-i686-1.4.3.tgz > mongo.tgz

$ tar xzf mongo.tgz

64位Linux

$ curl https://www.360docs.net/doc/9c7705982.html,/linux/mongodb-linux-x86_64-1.4.3.tgz > mongo.tgz $ tar xzf mongo.tgz

其他版本去下载页面https://www.360docs.net/doc/9c7705982.html,/display/DOCS/Downloads找与之对应的版本安装即可。

下载完了之后解压。

创建数据存放目录。

默认情况下MongoDB的数据存放目录是/data/db,但是MongoDB不会自己去创建目录,所以需要你手工创建:

$ sudo mkdir /data/db/

你也可以使用不同的路径,在启动的时候知道路径参数—dbpath即可。

启动MongoDB

$ ./mongodb-xxxxxxx/bin/mongod

连接MongoDB

$ ./mongodb-xxxxxxx/bin/mongo

> db.foo.save( { a : 1 } )

> db.foo.find()

恭喜你,到此为止,你的第一条数据已经保存进了Linux系统的MongoDB了。

快速入门windows系统

下载,安装同Linux的下载,安装,根据自己需要的版本去下载页面下载,下载完了之后解压,在这里不多罗嗦了。

创建数据目录

在windows下的默认数据目录是C:\data\db,但是MongoDB同样不会自己去创建该目录,需要自己的去创建,当然通Linux系统一下,也可以指定别的目录。在启动的时候告诉他即可。

启动MongoDB

mongodb-xxxxxxx\bin\mongod.exe

连接MongoDB

mongodb-xxxxxxx\bin\mongo.exe

> db.foo.save( { a : 1 } )

> db.foo.find()

恭喜你,到此为止,你的第一条数据已经保存进了windows系统的MongoDB了。

https://www.360docs.net/doc/9c7705982.html,/display/DOCS/Downloads

MongoDB驱动下载

Java驱动下载地址https://www.360docs.net/doc/9c7705982.html,/mongodb/mongo-java-driver/downloads

PS:我正在写这个的时候MongoDB的最高版本是1.3

对应的API地址:https://www.360docs.net/doc/9c7705982.html,/java/2.0/index.html

小试牛刀

Java的驱动提供了一个DBObject接口,保存到数据库的对象需要实现该接口。请看下面这个例子:

public class Tweet implements DBObject {

/* ... */

}

然后你的保存可以这么写:

Tweet myTweet = new Tweet();

myTweet.put("user", userId);

myTweet.put("message", msg);

myTweet.put("date", new Date());

collection.insert(myTweet);

当一个文件从数据库检索出来,他自动转换成DBObject,为了转换成你所需要的类型,使用DBCollection.setObjectClass():

collection.setObjectClass(Tweet);

Tweet myTweet = (Tweet)collection.findOne();

PS:可能很多朋友测试不成功,不知道这个collection怎么来的,在这里你可以这样来获得collection:

DBAddress dba = new DBAddress("localhost", 27017, "TestDB");

DB db = Mongo.connect(dba);

DBCollectioncollection = db.getCollection("testcollection");

具体是为什么,后面会具体说到。

MongoDB的启动

//在这里主要说在Linux的下的问题,windows差不多,但不说了

普通启动

(1)默认启动bin/mongod

(2)指定端口和数据目录bin/mongod –dbpath=/var/data/ –port=556600

(3)带有鉴权的启动bin/mongod –auth

分布式配置

您需要启动的至少两个MongoDB文档数据库。

服务器1:192.168.1.10/Linux1

服务器2:192.168.1.11 /Linux2

启动服务器1:

bin/mongod –slave –source=192.168.1.11:556600 –dbpath=/var/db/ –port=556611 –slavedelay 10 &

启动服务器2:

bin/mongod –slave –source=192.168.1.10:556601 –dbpath=/var/db/ –port=556610 –slavedelay 10 &

PS:这里的意思是启动该服务器1,并且把服务器2作为主服务器,每10秒与

主服务器2同步一次。启动服务器2的意思是,把服务器1作为主服务器,每

10秒与服务器1同步一次。这样服务器1与服务器2就构成了同步了。

在这里我曾经在公司测试过,是可以的,但是我现在是放假在家里,不知道其

中是否有错误,你自己鉴别。

MongoDB在Java中的应用

建立连接

要建立MongoDB的连接,你只要指定要连接到的数据库就可以。这个数据库不一定存在,如果不存在,MongoDB会先为你建立这个库。同时,在连接时你也可以具体指定要连接到的网络地址和端口。(以下示例连接到Linux 192.168.1.10)

//创建一个连接地址

DBAddress dba = new DBAddress("192.168.1.10", 27017, "mydb1");

DB db = Mongo.connect(dba);

//鉴权(当鉴权启动时是必须的),成功返回true,否则返回false

boolean auth = db.authenticate("username","passwd".toCharArray());

基本操作

获取集合列表(ps:你可以把集合理解成关系型数据库中的表)

Set colls = db.getCollectionNames();

for(String s : colls){

System.out.println(s);

}

获得一个集合,其中testCollection可以是集合列表中的一个,也可以是一个新的集合名字,当该集合不存在时自动创建该集合,获得之后即和对该集合进行增删查改DBCollection coll = db.getCollection("testCollection");

插入文档(插入的文档需要是json格式的,类似于key-value,每个键值对之间用逗号分隔)

Eg:

{

"name" : "MongoDB",

"type" : "database",

"count" : 1,

"info" : {

x : 203,

y : 102

}

}

代码实现:

BasicDBObject doc = new BasicDBObject();

doc.put("name", "MongoDB");

doc.put("type", "database");

doc.put("count", 1);

BasicDBObject info = new BasicDBObject();

info.put("x", 203);

info.put("y", 102);

doc.put("info", info);

coll.insert(doc);

Long i = coll.getCount();

查找文档(查找第一个文档:findOne();查找所有文档:find();根据条件查询文档:find(DBObject))

findOne()的用法:

DBObject obj = coll.findOne();

System.out.println(obj);

find()的用法:

DBCursor cur = coll.find();

while(cur.hasNext()){

System.out.println(cur.next());

}

find(DBOject)用法:

//查询count = 1 ,name= “MongoDB”的数据

BasicDBObject query = new BasicDBObject();

query.put("count", 1);

query.put("name ", “MongoDB”);

DBCursor cur = coll.find(query);

System.out.println(cur.count()); //查询结果个数

while(cur.hasNext()){

System.out.println(cur.next());

}

//引申:根据_id查询

BasicDBObject query = new BasicDBObject();

query.put("_id", new ObjectId("4bb29ce82075bcce6102573d"));

DBCursor cur = coll.find(query);

System.out.println(cur.count()); //查询结果个数

while(cur.hasNext()){

System.out.println(cur.next());

}

模糊查询

MongoDB支持正则表达式查询,可以代替关系数据库中的模糊查询。由于文档中写代码格式不是很好看,所以不在这里写了。具体请查看下下来的代码文件。

删除数据

coll.remove(DBObject);

创建索引

MongoDB支持索引,而且很容易在集合上增加索引。要创建索引,只需要指定要加索引的属性,并且指定升序(1)或降序即可(-1)。

coll.createIndex(new BasicDBObject("i", 1));

获取索引列表

List list = coll.getIndexInfo();

for(DBObject o : list){

System.out.println(o);

}

MongoDB连接池

任何一种数据在做数据库连接的时候都是非常耗时间的,所以需要连接池,MongoDB也不例外,目前我还没有发现MongoDB的第三方连接池,所以我自己写了一个很烂的连接池,放在了代码里面。写的很烂,请别笑话!

第三部分

补充说明

由于在word中写代码我个人感觉很别扭,而且很难写好,所以代码的例子就写这么几个,具体的代码请查看一起下载下来的代码文件,同时欢迎加入NOSQL交流群67472265一起讨论交流。我的英语不是很好,加上我对MongoDB刚接触,所以错误是再说难免的,如果在用的过程中有什么问题,发现有什么错误,我的邮件地址是:xcwang@https://www.360docs.net/doc/9c7705982.html,,期待收到你的邮件。谢谢!

免责申明

我所写的不一定是正确,我所写的只是一些常用的部分,如果你按照我所写的去做,遇到一切风险,我不承担任何责任。

mongodb操作

撰写报告 实验名称:课程名称:实验学期: 班级名称:学生姓名:学生学号: 上课地点:实验时间:截止时间: 实验目的:实验指导书: 实验内容: 一、数据库操作 1.显示当前选择的数据库 > db test 2.创建或切换数据库MyDB > use MyDB switched to db MyDB > db MyDB 3.查看所有数据库 > show dbs local 0.078GB 4.向MyDB插入一个文件 > db.movie.insert({"name":"tutorials yiibai"}) WriteResult({ "nInserted" : 1 }) 5.查看所有数据库 > show dbs MyDB 0.078GB local 0.078GB 6.删除数据库MyDB > db.dropDatabase() { "dropped" : "MyDB", "ok" : 1 } > show dbs local 0.078GB 二、集合操作 1.显式和隐式创建集合movie 显示集合创建 > db.createCollection("movie") { "ok" : 1 } > show collections movie system.indexes

隐身集合创建 > db.movie.insert({"name":"tutorials yiibai"}) WriteResult({ "nInserted" : 1 }) > show collections movie system.indexes 2.查询所有集合 > show collections movie system.indexes 3.查看集合总数据量 > db.movie.count() 1 4.查看movie集合所在数据库 > db.movie.getDB() MyDB 5.查看当前集合movie状态 > db.movie.stats() { "ns" : "MyDB.movie", "count" : 1, "size" : 112, "avgObjSize" : 112, "numExtents" : 1, "storageSize" : 8192, "lastExtentSize" : 8192, "paddingFactor" : 1, "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.", "userFlags" : 1, "capped" : false, "nindexes" : 1, "totalIndexSize" : 8176, "indexSizes" : { "_id_" : 8176 }, "ok" : 1 } 6.集合movie重命名 > db.movie.renameCollection("movies") { "ok" : 1 } > show collections movies system.indexes

MongoDB 使用手册-中文版

MongoDB 使用手册-中文版

目录 第1章MONGODB简介 (4) 1.1功能特点 (4) 1.2适用范围 (4) 第2章MONGODB下载及安装 (5) 2.1下载地址 (5) 2.2安装方法 (5) 第3章MONGODB语法 (6) 3.1基本命令 (6) 3.1.1.启动mongodb (6) 3.1.2.停止mongodb (6) 3.2SQL语法 (7) 3.2.1.基本操作 (7) 3.2.2.数据集操作 (8) 第4章JAVA操作MONGODB (10) 4.1正在整理中 (10) 第5章其它 (10) 5.1正在整理中 (10)

第1章MongoDB简介 1.1功能特点 官方网址:https://www.360docs.net/doc/9c7705982.html,/ MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案。 它的特点是可扩展,高性能,易使用,模式自由,存储数据非常方便等,主要功能特性有: ◆面向文档存储:(类JSON数据模式简单而强大)。 ◆高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。 ◆复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从 模式及服务器之间的相互复制。 ◆Auto-Sharding自动分片支持云级扩展性(处于早期alpha阶段):自动分片功 能支持水平的数据库集群,可动态添加额外的机器。 ◆动态查询:它支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻 易查询文档中内嵌的对象及数组。 ◆全索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达 式,并生成一个高效的查询计划。 ◆支持RUBY,PYTHON,JA V A,C++,PHP等多种语言。 1.2适用范围 适用场景: ◆适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高 度伸缩性。 ◆适合作为信息基础设施的持久化缓存层。 ◆适合由数十或数百台服务器组成的数据库。因为Mongo已经包含对 MapReduce引擎的内置支持。 ◆Mongo的BSON数据格式非常适合文档化格式的存储及查询。 不适用场景: ◆高度事务性的系统。 ◆传统的商业智能应用。 ◆级为复杂的SQL查询。

mongodb安装及简单操作附截图

MongoDB安装及简单操作 1.下载mongodb 链接:https://www.360docs.net/doc/9c7705982.html,/s/1gdKtrUz 密码:9af8这是我网盘的链接,下载解压到D 盘 2.配置文件 第一步,解压之后将文件夹放在D盘; 第二步,将mongodb-win32-x86_64-2.0.6文件夹重命名为mongodb; 第三步,在D:\mongodb\下创建data文件夹,路径D:\mongodb\下包含下面文件; 第四步,在data文件夹下创建db文件夹和log文件夹如下图; 第五步,在log文件夹下创建日志文件MongoDB.log如下图

3.连接数据库 打开命令提示符(管理员权限) D: cd d:\mongodb\bin mongod -dbpath "d:\mongodb\data\db" 正常情况下会看到下面的界面 这时候,已经成功打开mongodb的服务了,27017是默认端口。在浏览器中检验一下是否真的成功的启动了mongodb的服务,在浏览器输入http://localhost:27017/

只要看到上面的界面就证明连接成功了。 这时候,再打开一个命令提示符窗口,可以不是管理员权限,去进行数据库的操作。 输入mongo 输入show dbs 插入一条数据https://www.360docs.net/doc/9c7705982.html,er.insert({name:”laowang”}) 也可以是https://www.360docs.net/doc/9c7705982.html,er.save({name:”laowang”}) 或者,一次添加姓名和年龄数据,二维数据https://www.360docs.net/doc/9c7705982.html,er.save({name:”laowang”,age:”25”}) 查看数据 https://www.360docs.net/doc/9c7705982.html,er.find() 相当于sql的select * from user 其他的mongodb常用操作命令,我在网上找了一些,直接给你粘贴上来。 1、Help查看命令提示 help db.help(); db.yourColl.help();

MongoDB应用

MongoDB数据库 一、MongoDB简介 MongoDB是一个面向文档的数据库系统。使用C++编写,不支持SQL,但有自己功能强大的查询语法。 MongoDB使用BSON作为数据存储和传输的格式。BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。 MongoDB很像MySQL,document对应MySQL的row,collection对应MySQL的table。 二、Wind ows下MongoDB操作 MongoDB在Windows上的安装运行很方便。直接下载、解压,然后运行bin/mongod 即可启动服务器,运行bin/mongo 即可运行命令行客户端。 2-1、下载与解压 官方网站:https://www.360docs.net/doc/9c7705982.html,/downloads。 下载对于版本,解压并抽取相关的bin目录到C:\MongoDB下(这个任意选择)。 在启动MongoDB之前,我们必须新建一个存放mongoDB数据和日志的目录。数据库目录:C:\MongoDB\data\db\,日志目录:C:\MongoDB\data\。 2-2、运行服务端 打开CMD窗口,进入到C:\MongoDB\bin目录下,运行服务端mongod.exe。 C:\>cd C:\MongoDB\bin C:\MongoDB\bin>mongod.exe --dbpath=C:\MongoDB\data\db --directoryperdb --logpath

=C:\MongoDB\data\logs --logappend 注: 日志文件为C:\MongoDB\data\logs,以及添加方式记录(追加)。 数据目录为C:\MongoDB\data\db,并且每个数据库将储存在一个单独的目录(--directoryperdb)。 服务端要一直运行。Ctrl+C可中断。 2-3、运行客户端 再打开一个CMD窗口,进入到C:\MongoDB\bin目录下,运行客户端mongo.exe来登录MongoDB。(要保持服务端mongod.exe的窗口不关闭) 2-4、测试操作 MongoDB使用GridFS来储存大文件。每个BSON对象大小不能超过4MB。 字段名限制:不能以“$”开头;不能包含“.”;“_id”是系统保留的字段,但用户可以自己储存唯一性的数据在字段中。 MongoDB为每个数据库分配一系列文件。每个数据文件都会被预分配一个大小,第一个文件名字为“.0”,大小为64MB,第二个文件“.1”为128MB,依此类推,文件大小上限为2GB。 MongoDB没有新建数据库或者collection的命令,只要进行insert或其它操作,MongoDB 就会自动帮你建立数据库和collection。当查询一个不存在的collection时也不会出错,Mongo会认为那是一个空的collection。 一个对象被插入到数据库中时,如果它没有ID,会自动生成一个“_id”字段,为24位16进制数。 MongoDB命令行客户端的脚本语法有些类似MySQL的: > show dbs // 列出所有数据库 > use memo // 使用数据库memo。即使这个数据库不存在也可以执行,但该数据库不会立刻被新建,要等到执行了insert等的操作时,才会建立这个数据库。

MongoDB入门经典

第一讲MongDB数据库的基本安装文件 https://www.360docs.net/doc/9c7705982.html,/display/DOCS/Home MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo 使用C++开发。Mongo的官方网站地址是:https://www.360docs.net/doc/9c7705982.html,/ 首先下载数据库的基本软件安装包,下载地址:https://www.360docs.net/doc/9c7705982.html,/download 第二,新建目录“D:\MongoDB”,解压下载到的安装包,找到bin目录下面全部.exe文件,拷贝到刚创建的目录下。 第三,在“D:\MongoDB”目录下新建“data”文件夹,它将会作为数据存放的根文件夹。 配置Mongo服务端: https://www.360docs.net/doc/9c7705982.html,/scotthernandez/mongo-seattle-java-development 打开CMD窗口,按照如下方式输入命令: > d: > cd D:\MongoDB > mongod --dbpath D:\MongoDB\data

就基本成功了 然后在浏览器中输入http://localhost:27017/ 显示以下网页You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number 然后就OK啦 第二讲关于在java平台下的mongodb的使用的操作 首先下载mongodb在java中的驱动库文件,下载地址分别为 https://https://www.360docs.net/doc/9c7705982.html,/KentBeck/junit/downloads https://https://www.360docs.net/doc/9c7705982.html,/mongodb/mongo-java-driver/downloads 第二部新建java工程添加库文件如图所示

Mongodb3.0基本教程

非关系数据库—Mongodb 姓名:聂杰 学号:2123212 日期:2015-6-15

数据库新技术大作业 1. 内容简介 1. 版本 DB:Mongodb version:3.0.4 CS:Linux version:3.13.0 2. 应用背景 2010年,随着互联网Web2.0网站的兴起,NoSQL(非关系型数据库)在国内掀起一阵热潮。NoSQL 数据库与传统的关系型数据库相比它具有操作简单、完全免费、源码公开、随时下载等特点,并可 以用于各种商业目的。这使NoSQL产品广泛应用于各种大型门户网站和专业网站,大大降低了运营 成本。而Mongo DB则是其中最流行的一个。 3. 特点 1. 操作简单 2. 完全免费 3. 源码公开 4. 模式自由 5. 开箱即用 6. 水平扩展机制 2. 结构组成 1. 系统架构 2. 数据存储

3. 数据处理 3. 安装过程 1. 系统硬件 一台装有linux的计算机 2. 描述 1. 进入官网(https://www.360docs.net/doc/9c7705982.html,/downloads )下载对应系统的Mongodb版本tgz文 件到/home/username/Download,解压并重命名为mongodb 2. mkdir /home/username/mongodb 3. mv /home/username/Download/mongodb /home/username/mongodb 4. cd /home/username/mongodb 5. mkdir data/db

6. touch logs/mongodb.log 7. touch mongodb.conf 8. vim mongodb.conf 9. ./bin/mongod --config mongodb.conf 10. ./bin/mongo 11. 在浏览器打开:http://localhost:28017

MongoDB使用手册

MongoDB使用说明手册

目录 第1章MONGODB简介 (4) 1.1功能特点 (4) 1.2适用范围 (4) 第2章MONGODB下载及安装 (5) 2.1下载地址 (5) 2.2安装方法 (5) 第3章MONGODB语法 (6) 3.1基本命令 (6) 3.1.1.启动mongodb (6) 3.1.2.停止mongodb (6) 3.2SQL语法 (7) 3.2.1.基本操作 (7) 3.2.2.数据集操作 (8) 第4章JAVA操作MONGODB (10) 4.1正在整理中 (10) 第5章其它 (10) 5.1正在整理中 (10)

第1章MongoDB简介 1.1功能特点 官方网址:https://www.360docs.net/doc/9c7705982.html,/ MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案。 它的特点是可扩展,高性能,易使用,模式自由,存储数据非常方便等,主要功能特性有: ◆面向文档存储:(类JSON数据模式简单而强大)。 ◆高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。 ◆复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从 模式及服务器之间的相互复制。 ◆Auto-Sharding自动分片支持云级扩展性(处于早期alpha阶段):自动分片功 能支持水平的数据库集群,可动态添加额外的机器。 ◆动态查询:它支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻 易查询文档中内嵌的对象及数组。 ◆全索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达 式,并生成一个高效的查询计划。 ◆支持RUBY,PYTHON,JA V A,C++,PHP等多种语言。 1.2适用范围 适用场景: ◆适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高 度伸缩性。 ◆适合作为信息基础设施的持久化缓存层。 ◆适合由数十或数百台服务器组成的数据库。因为Mongo已经包含对 MapReduce引擎的内置支持。 ◆Mongo的BSON数据格式非常适合文档化格式的存储及查询。 不适用场景: ◆高度事务性的系统。 ◆传统的商业智能应用。 ◆级为复杂的SQL查询。

MongoDB开发使用手册

MongoDB开发使用手册 一.基础部分 MongDB简介 1.NOSQL历史和产生原因 原因: 互联网用户数的增长和用户参与互联网习惯的改变 1.初始的静态内容网站,提供中心化的内容服务, 特点: 中心化,用户阅读内容 系统:Apache 2.动态网页内容,电子商务和论坛网站出现。 特点: 用户访问动态内容,并提供少量内容 系统:Apache+Mysql+Php, IIS+ASP+SQLSERVER, IIS+https://www.360docs.net/doc/9c7705982.html,+SQLSERVER, TOMCAT+JSP+ORACLE 3. 博客出现: 去中心化网站出现。 特点:Web2.0网站的雏形用户阅读内容,并开始更多地参与网站的交互 系统: 高并发访问,数据库压力增大Memcached 缓存的出现,并出现数据库集群的概念 4.微博,淘宝等网站出现,以及云计算平台出现,如google,百度广告,等大规模系统 特点: 用户重复参与网站交互,和内容提供,而系统需要对用户行为进行分析 系统:支持高并发,及时响应,并能够实现分布式计算 NOSQL:Memcached, Redis, Hbase, 等NOSQL数据库,不仅仅是简单缓存,并能够提供分布式要求,包括复制,分片,水平分区,并提供复杂格式的数据存储 总结: 1.高并发读写操作 普通关系型数据库,很难满足高并发读写的要求,上万次读写的需求 2.海量数据存储 上亿用户产生大量数据,包括用户数据,访问日志,用户提供内容,用户状态记录等,这种海量数据的存储,关系型数据库已经很难满足,尤其是从海量数据中提取和汇总数据成为瓶颈 3.高可用性和高扩展性 关系型数据库也能支持,同步复制,水平分区扩展,但维护工作相当繁杂,并很难做到热扩展 4.内存操作(快速), 并发量高(非阻塞进程), 硬盘回写(数据完整和高效的平衡),备份和恢复 复制(高可用性,和连续服务), 分片(热扩展,海量数据) 操作简单(JSON),负载均衡,分布式部署(局域网,和物理部分), 事务支持

Morphia 操作 MongoDB

Morphia操作 MongoDB 上两篇文章:https://www.360docs.net/doc/9c7705982.html,/hoojo/archive/2011/06/01/2066426.html https://www.360docs.net/doc/9c7705982.html,/hoojo/archive/2011/06/02/2068665.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作、以及通过Java MongoDB 的驱动完成在Java中对MongoDB的操作,通过前两篇文章我们对MongoDB有了全面、深刻的认识和理解。现在我们就看看利用Morphia库来操作MongoDB。 开发环境: System:Windows IDE:eclipse、MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jar Email:hoojo_@https://www.360docs.net/doc/9c7705982.html, Blog:https://www.360docs.net/doc/9c7705982.html,/IBM_hoojo https://www.360docs.net/doc/9c7705982.html,/ 一、准备工作 1、首先,下载mongoDB对Java支持的驱动包 驱动包下载地址:https://https://www.360docs.net/doc/9c7705982.html,/mongodb/mongo-java-driver/downloads mongoDB对Java的相关支持、技术:https://www.360docs.net/doc/9c7705982.html,/display/DOCS/Java+Language+Center 驱动源码下载:https://https://www.360docs.net/doc/9c7705982.html,/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip 在线查看源码:https://https://www.360docs.net/doc/9c7705982.html,/mongodb/mongo-java-driver Morphia jar包下载:https://www.360docs.net/doc/9c7705982.html,/p/morphia/downloads/list 2、下面建立一个JavaProject工程,导入下载下来的驱动包。即可在Java中使用 Morphia,目录如下:

mongoDb使用教程

MongoDB Java API 该文档是翻译自文档[mongodb-docs-2010-10-24.pdf]的[Java Language Center]章节,根据自己的理解整理而成。 希望能给像我这样开始接触的朋友一点帮助,同时也做个备忘,因为是刚刚学习,其中的很多功能目前都用不上,以后万一有什么功能不太清楚,也可以直接查阅该文档了。首先安装可视化工具mongoDBvue可去百度搜索 MongoDB Java Driver 简单操作 一、Java驱动一致性 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,Mongo有个内置的连接池(池大小默认为10个)。 对于有大量写和读的环境中,为了确保在一个Session中使用同一个DB时,我们可以用以下方式保证一致性: DB mdb = mongo.getDB('dbname'); mdb.requestStart(); // // 业务代码 // mdb.requestDone(); DB和DBCollection是绝对线程安全的,它们被缓存起来了,所以在应用中取到的可能是同一个对象。 二、保存/查找对象(DBObject) Java驱动提供了DBObject接口,方便我们保存对象到数据库中。 定义需要保存的对象: public class Tweet implements DBObject { /** ...... */ } 然后我们可以使用该对象: Tweet tweet = new Tweet(); tweet.put("user", userId); tweet.put("message", message); tweet.put("date", new Date()); collection.insert(tweet); 当从数据库中查询时,结果会自动的转换成DBObject对象,我们可以转换成我们自己的类型: collection.setObjectClass(Tweet); Tweet myTweet = (Tweet)collection.findOne(); 三、创建连接 Mongo m = new Mongo(); Mongo m = new Mongo("localhost"); Mongo m = new Mongo("localhost", 27017); DB db = m.getDB("mydb); 注意:事实上,Mongo实例代表了一个数据库连接池,即使在多线程的环境中,一个Mongo实例对我们来说已经足够了。

MongoDB常用操作命令大全

MongoDB常用操作命令大全 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。 一、数据库常用命令 1、Help查看命令提示 复制代码代码如下: help db.help(); db.yourColl.help(); db.youColl.find().help(); rs.help(); 2、切换/创建数据库 复制代码代码如下: use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库 3、查询所有数据库 复制代码代码如下: show dbs; 4、删除当前使用数据库 复制代码代码如下: db.dropDatabase(); 5、从指定主机上克隆数据库 复制代码代码如下: db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库 6、从指定的机器上复制指定数据库数据到某个数据库 复制代码代码如下:

db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中 7、修复当前数据库 复制代码代码如下: db.repairDatabase(); 8、查看当前使用的数据库 复制代码代码如下: db.getName(); db; db和getName方法是一样的效果,都可以查询当前使用的数据库 9、显示当前db状态 复制代码代码如下: db.stats(); 10、当前db版本 复制代码代码如下: db.version(); 11、查看当前db的链接机器地址 复制代码代码如下: db.getMongo(); 二、Collection聚集集合 1、创建一个聚集集合(table) 复制代码代码如下: db.createCollection(“collName”, {size: 20, capped: 5, max: 100});//创建成功会显示{“o k”:1} //判断集合是否为定容量db.collName.isCapped(); 2、得到指定名称的聚集集合(table) 复制代码代码如下: db.getCollection("account"); 3、得到当前db的所有聚集集合 复制代码代码如下:

JAVA对MongoDB的操作

java 对mongodb的操作 1.1Java连接mongodb数据库 1.1.1连单台mongodb Mongo mg = new Mongo();//默认连本机127.0.0.1 端口为27017 Mongo mg = new Mongo(ip);//可以指定ip 端口默认为27017 Mongo mg = new Mongo(ip,port);//也可以指定ip及端口号 1.1.2连双台mongodb //ip为主机ip地址,port为端口号,dataBaseName相当于数据库名DBAddress left = new DBAddress("ip:port/dataBaseName"); DBAddress right = new DBAddress("ip:port/dataBaseName"); //若一个mongodb出现问题,会自动连另外一台 Mongo mongo = new Mongo(left, right); 1.1.3连多台mongodb List mongoHostList = new ArrayList(); mongoHostList.add(new ServerAddress("ip",port)); mongoHostList.add(new ServerAddress("ip",port)); mongoHostList.add(new ServerAddress("ip",port)); Mongo mg = new Mongo(mongoHostList); 2.1获取mongodb的db

MongoDB使用手册

MongoDB使用手册 一、安装包下载地址 https://www.360docs.net/doc/9c7705982.html,/downloads 二、服务器端使用 LINUX版本: ①用tar -zxvf mongodb-linux-x86_64-1.2.4.tgz解压开安装包 ②mkdir -p /data/db 创建目录 ③cd /data/db 进入db目录下然后创建mkdir m_data m_log ④进入mongodb解压目录的bin目录下,用 ./mongod -fork --dbpath=./data/db/m_data/ --logpath=./m_log.log --logappend --port=27017 & 启动服务器。 WINDOW版本: 执行如下命令启动服务器: mongod --bind_ip 127.0.0.1 --logpath d:\data\logs --logappend --dbpath d:\data\db --directoryperdb –install 【注:将mongodb安装成服务,装该服务绑定到IP127.0.0.1,日志文件为d:\data\logs,以及添加方式记录。数据目录为d:\data\db。并且每个数据库将储存在一个单独的目录(--directoryperdb)】 三、客户端使用: LINUX版本: 进入MongoDB的bin目录下,使用./mongo进入命令行行下然后即可进行增删改查等日常操作。 WINDOW版本: 进入mongodb的bin目录下,使用mongo.exe --host IP --port 端口连接到MongoDB服务器上 四、MongDB停止 LINUX版本: 如果在shell窗口下可以直接按“CTRL+C”,如果是作为后台服务使用时,可以先使用ps -ef |grep mongod查询出服务器的pid,然后使用kill -9 pid 此处的Pid为查询出的pid。 WINDOW版本: 如果在命令窗口下直接按“CTRL+C”,如果是作为系统服务来使用的话,需要到服务管理中停止服务或者在window管理器中终止进程。 五、web版本的统计服务状态 使用http://IP(服务器IP):端口即可 六、语法 1、基本操作 db.AddUser(username,password) 添加用户 db.auth(usrename,password) 设置数据库连接验证 db.cloneDataBase(fromhost) 从目标服务器克隆一个数据库 https://www.360docs.net/doc/9c7705982.html,mandHelp(name) returns the help for the command db.copyDatabase(fromdb,todb,fromhost) 复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址

MongoDB常用操作命令大全

MongoDB常用操作命令大全 作者:字体:[增加减小] 类型:转载时间:2014-03-18 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('us er')),这样就可以创建一个名叫“myTest”的数据库。 一、数据库常用命令 1、Help查看命令提示 复制代码代码如下: help db.help(); db.yourColl.help(); db.youColl.find().help(); rs.help(); 2、切换/创建数据库 复制代码代码如下: use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库 3、查询所有数据库 复制代码代码如下: show dbs; 4、删除当前使用数据库 复制代码代码如下: db.dropDatabase(); 5、从指定主机上克隆数据库 复制代码代码如下: db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库 6、从指定的机器上复制指定数据库数据到某个数据库 复制代码代码如下: db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中 7、修复当前数据库 复制代码代码如下: db.repairDatabase(); 8、查看当前使用的数据库 复制代码代码如下: db.getName(); db; db和getName方法是一样的效果,都可以查询当前使用的数据库

mongodb 安装操作方法

Mongodb在Windows下安装及配置 分类:NoSQL mongodb数据库/sql2011-01-08 19:44 5354人阅读评论(0) 收藏举报1.下载mongodb的windows版本,有32位和64位版本,根据系统情况下载,下载地址:https://www.360docs.net/doc/9c7705982.html,/downloads 2.解压缩至E:/mongodb即可 3.创建数据库文件的存放位置,比如D:/mongodb/data/db。启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。默认文件夹路径为c:/data/db.使用系统默认文件夹路径时,启动服务无需加--dbpath 参数说明,但文件夹还要手工创建 4.打开cmd命令行,进入D:/mongodb/bin目录,输入如下的命令启动mongodb服务:D:/mongodb/bin>mongod.exe --dbpath D:/mongodb/data/db 显示: Sat Jan 08 18:49:34 MongoDB starting : pid=232 port=27017 dbpath=E:/mongodb/data 32-bit ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data ** see https://www.360docs.net/doc/9c7705982.html,/post/137788967/32-bit-limitations Sat Jan 08 18:49:34 db version v1.6.5, pdfile version 4.5 Sat Jan 08 18:49:34 git version: 0eb017e9b2828155a67c5612183337b89e12e291 Sat Jan 08 18:49:34 sys info: windows (5, 1, 2600, 2, 'Service Pack 3') BOOST_LI B_VERSION=1_35 Sat Jan 08 18:49:34 [initandlisten] waiting for connections on port 27017 Sat Jan 08 18:49:34 [websvr] web admin interface listening on port 28017 表示启动成功,最后两行说明的数据库端口和Web端口,默认分别是27017和28017,在浏览器中打开http://localhost:28017,可以看到其相关的一些信息。 可以通过添加参数--port的方式,来修改数据库端口:D:/mongodb/bin>mongod.exe --port 10001 --dbpath D:/mongodb/data/db 5.再打开一个cmd输入:D:/mongodb/bin>mongo,或者双击mongo.exe,即可进行mongodb 的客户端命令操作了,测试下 >// the mongo shell is a javascript shell connected to the db > 3+3 6 > db test

MONGODB学习总结入门篇

MongoDB 1Mongodb基本概念 1.1 简介 What is MongoDB? MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应 用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson 格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 MongoDB很像MySQL,document对应MySQL的row,collection对应MySQL的table。 1.2 特点 它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:*面向集合存储,易存储对象类型的数据。 *模式自由。 *支持动态查询。 *支持完全索引,包含内部对象。 *支持查询。 *支持复制和故障恢复。 *使用高效的二进制数据存储,包括大型对象(如视频等)。 *自动处理碎片,以支持云计算层次的扩展性。 *支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。 *文件存储格式为BSON(一种JSON的扩展)。 *可通过网络访问。

1.3 使用原理 所谓“面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。 模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format)。 推荐64位系统。 参考官方API(建议英文)。 2Window下Mongodb操作 2.1 下载与解压 官方网站:https://www.360docs.net/doc/9c7705982.html,/downloads。 下载对于版本,解压并抽取相关的bin目录到C:\MongoDB下(这个任意选择)。 在启动MongoDB之前,我们必须新建一个存放mongoDB数据和日志的目录。数据库目录:C:\MongoDB\data\db\,日志目录:C:\MongoDB\data\。

mongodb常用命令

mongodb常用命令 mongodb由C++写就,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。关于它的一个最简洁描述为:scalabl e, high-performance, open source, schema-free, document-oriented database。MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。 一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个coll ection可以存放多个文档(document),每个文档都以BSON(binary json)的形式存放于硬盘中,因此可以存储比较复杂的数据类型。它是以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的schema-free,这也是文档型数据库最主要的优点。跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以你又可以像关系型数据库那样对某些域进行读写、统计等操作。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mongo还可以解决海量数据的查询效率,根据官方文档,当数据量达到50GB以上数据时,Mongo数据库访问速度是MySQL10 倍以上。 BSON BSON是Binary JSON 的简称,是一个JSON文档对象的二进制编码格式。BSON同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型。如:BSON有Date类型和BinDate类型。 BSON被比作二进制的交换格式,如同Protocol Buffers,但BSON 比它更“schema-less”,非常好的灵活性但空间占用稍微大一点。BSON有以下三个特点: 1.轻量级

基于MongoDB的学生信息管理

《基于MongoDB的学生信息管理》 院系 专业 班级 提交时间:2016年 11月 8日

基于MongoDB的学生信息管理 湖北省武汉,430070 摘要:目前,学生信息越来越庞大,管理难度也随之加大,而且传统的数据库又无法跟上时代的浪潮。使用新型的数据库来替代传统数据库成为历史必然。结合所学知识,我使用NoSQL数据库中的一种来实现对学生信息的基本管理。在其中,我选择了MongoDB数据库作为信息管理的数据库。另外,我所编写的管理程序是在cmd下通过使用命令行模式来完成。它能够实现基本的数据库的操作,并且连接MongoDB数据库,对学生信息添加修改查找删除。我设计这种方法是为了能够有效管理学生信息。管理人员如果使用它,便可实现自动化、科学化的管理。 关键词:MongoDB数据库;学生信息管理 Student Information Management Based on MongoDB Database Abstract: At present, the student information is more and more huge, the management difficulty also will increase, and moreover the traditional database can not keep up with the tide of the times. Using a new type of database to replace the traditional database becomes a historical necessity. Combined with the knowledge, I use NoSQL database in a way to achieve the basic management of student information. Among them, I chose the MongoDB database as the information management database. In addition, I am prepared by the management procedures in cmd through the use of the command line mode to complete. It can achieve the basic database operation, and connect to the MongoDB database, modify the student information to add delete. I designed this method in order to be able to effectively manage student information. If managers use it, can be automated, scientific management. Keywords: MongoDB database; student information management

相关主题
相关文档
最新文档