MongoDB使用手册

MongoDB使用手册
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/7811604322.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查询。

第2章MongoDB下载及安装

2.1下载地址

https://www.360docs.net/doc/7811604322.html,/downloads

选择一个稳定的版本v1.4.5,如下图:

2.2安装方法

通过mongod –install命令把mongodb注册成为window service。

1)创建数据库存储目录;例如:d:\data\db

2)通过命令行执行:

d:\data\logs,以及添加方式记录。数据目录为d:\data\db。并且每个数据库将储存在一个单独的目录(--directoryperdb)】

安装成功后,如下图:

3)启动服务后,尝试是否可用,通过命令行进入%MONGODB_HOME%\bin下执

行mongo.exe命令后出现如下图所示信息表示连接成功:

第3章MongoDB语法

3.1基本命令

3.1.1.启动mongodb

run 直接启动:

例如:mongod run

--dbpath 指定存储目录启动:

例如:mongod –dbpath = d:\ db

--port 指定端口启动:(默认端口是:27017) 例如:mongod --port 12345。

3.1.2.停止mongodb

在窗口模式中,可以直接使用Ctrl+C停止服务。

3.2SQL语法

3.2.1.基本操作

db.AddUser(username,password) 添加用户

db.auth(usrename,password) 设置数据库连接验证

db.cloneDataBase(fromhost) 从目标服务器克隆一个数据库

https://www.360docs.net/doc/7811604322.html,mandHelp(name) returns the help for the command

db.copyDatabase(fromdb,todb,fromhost) 复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址

db.createCollection(name,{size:3333,capped:333,max:88888}) 创建一个数据集,相当于一个表

db.currentOp() 取消当前库的当前操作

db.dropDataBase() 删除当前数据库

db.eval(func,args) run code server-side

db.getCollection(cname) 取得一个数据集合,同用法:db['cname'] or db.getCollenctionNames() 取得所有数据集合的名称列表

db.getLastError() 返回最后一个错误的提示消息

db.getLastErrorObj() 返回最后一个错误的对象

db.getMongo() 取得当前服务器的连接对象get the server

db.getMondo().setSlaveOk() allow this connection to read from then nonmaster membr of a replica pair

db.getName() 返回当操作数据库的名称

db.getPrevError() 返回上一个错误对象

db.getProfilingLevel()

db.getReplicationInfo() 获得重复的数据

db.getSisterDB(name) get the db at the same server as this onew db.killOp() 停止(杀死)在当前库的当前操作

db.printCollectionStats() 返回当前库的数据集状态

db.printReplicationInfo()

db.printSlaveReplicationInfo()

db.printShardingStatus() 返回当前数据库是否为共享数据库

db.removeUser(username) 删除用户

db.repairDatabase() 修复当前数据库

db.resetError()

db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1}

db.setProfilingLevel(level) 0=off,1=slow,2=all

db.shutdownServer() 关闭当前服务程序

db.version() 返回当前程序的版本信息

3.2.2.数据集(表)操作

db.test.find({id:10}) 返回test数据集ID=10的数据集

db.test.find({id:10}).count() 返回test数据集ID=10的数据总数

db.test.find({id:10}).limit(2) 返回test数据集ID=10的数据集从第二条开始的数据集

db.test.find({id:10}).skip(8) 返回test数据集ID=10的数据集从0到第八条的数据集

db.test.find({id:10}).limit(2).skip(8) 返回test数据集ID=1=的数据集从第二条到第八条的数据

db.test.find({id:10}).sort() 返回test数据集ID=10的排序数据集

db.test.findOne([query]) 返回符合条件的一条数据

db.test.getDB() 返回此数据集所属的数据库名称

db.test.getIndexes() 返回些数据集的索引信息

db.test.group({key:...,initial:...,reduce:...[,cond:...]})

db.test.mapReduce(mayFunction,reduceFunction,)

db.test.remove(query) 在数据集中删除一条数据

db.test.renameCollection(newName) 重命名些数据集名称

db.test.save(obj) 往数据集中插入一条数据

db.test.stats() 返回此数据集的状态

db.test.storageSize() 返回此数据集的存储大小

db.test.totalIndexSize() 返回此数据集的索引文件大小

db.test.totalSize() 返回些数据集的总大小

db.test.update(query,object[,upsert_bool]) 在此数据集中更新一条数据

db.test.validate() 验证此数据集

db.test.getShardVersion() 返回数据集共享版本号

MongoDB语法与现有关系型数据库SQL语法比较

MongoDB语法 MySql语法

db.test.find({'name':'foobar'}) <==> select * from test where name='foobar'

db.test.find() <==> select * from test

db.test.find({'ID':10}).count() <==> select count(*) from test where ID=10

db.test.find().skip(10).limit(20) <==> select * from test limit 10,20

db.test.find({'ID':{$in:[25,35,45]}}) <==> select * from test where ID in (25,35,45)

db.test.find().sort({'ID':-1}) <==> select * from test order by ID desc

db.test.distinct('name',{'ID':{$lt:20}}) <==> select distinct(name) from test where ID<20

db.test.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+= obj.marks;},initial:{msum:0}}) <==> select name,sum(marks) from test group by name

db.test.find('this.ID<20',{name:1}) <==> select name from test where ID<20

db.test.insert({'name':'foobar','age':25})<==>insert into test ('name','age') values('foobar',25)

db.test.remove({}) <==> delete * from test

db.test.remove({'age':20}) <==> delete test where age=20

db.test.remove({'age':{$lt:20}}) <==> elete test where age<20

db.test.remove({'age':{$lte:20}}) <==> delete test where age<=20

db.test.remove({'age':{$gt:20}}) <==> delete test where age>20

db.test.remove({'age':{$gte:20}}) <==> delete test where age>=20

db.test.remove({'age':{$ne:20}}) <==> delete test where age!=20

db.test.update({'name':'foobar'},{$set:{'age':36}}) <==> update test set age=36 where name='foobar'

db.test.update({'name':'foobar'},{$inc:{'age':3}}) <==> update test set age=age+3 where

第4章JAVA操作MongoDB

4.1正在整理中……

第5章其它

5.1正在整理中……

mongodb学习总结

MongoDB学习文档 一、NoSQL简介 1、什么是NoSQL? NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 2、NoSQL的优点/缺点 优点: 高可扩展性。 分布式计算。 低成本。 架构的灵活性,半结构化数据。 没有复杂的关系。

缺点: 没有标准化。 有限的查询功能(到目前为止)。 最终一致是不直观的程序。 3、NoSQL 数据库分类 类型部分代表特点 列存储Hbase Cassandra Hypertable 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 文档存储MongoDB CouchDB 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。 key-value存储Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis 可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) 图存储Neo4J FlockDB 图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 对象存储db4o 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。

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/7811604322.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集群搭建的三种方式 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 Mongodb的存储方式是文档式存储,并不是Key-Value形式。 Mongodb的三种集群方式的搭建:Replica Set、Sharding、Master-Slaver。 1、Replica Set(副本集) 简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,提供的前提就是数据需要和主节点一致。如下图: Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点。主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。 默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。这个设

置叫做Read Preference Modes,同时Java客户端提供了简单的配置方式,可以不必直接对数据库进行操作。 仲裁节点是一种特殊的节点,它本身并不存储数据,主要的作用是决定哪一个备节点在主节点挂掉之后提升为主节点,所以客户端不需要连接此节点。这里虽然只有一个备节点,但是仍然需要一个仲裁节点来提升备节点级别。 2、Sharding 和Replica Set类似,都需要一个仲裁节点,但是Sharding还需要配置节点和路由节点。就三种集群搭建方式来说,这种是最复杂的。部署图如下:

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/7811604322.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安装及简单操作附截图

MongoDB安装及简单操作 1.下载mongodb 链接:https://www.360docs.net/doc/7811604322.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/7811604322.html,er.insert({name:”laowang”}) 也可以是https://www.360docs.net/doc/7811604322.html,er.save({name:”laowang”}) 或者,一次添加姓名和年龄数据,二维数据https://www.360docs.net/doc/7811604322.html,er.save({name:”laowang”,age:”25”}) 查看数据 https://www.360docs.net/doc/7811604322.html,er.find() 相当于sql的select * from user 其他的mongodb常用操作命令,我在网上找了一些,直接给你粘贴上来。 1、Help查看命令提示 help db.help(); db.yourColl.help();

MongoDB入门经典

第一讲MongDB数据库的基本安装文件 https://www.360docs.net/doc/7811604322.html,/display/DOCS/Home MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo 使用C++开发。Mongo的官方网站地址是:https://www.360docs.net/doc/7811604322.html,/ 首先下载数据库的基本软件安装包,下载地址:https://www.360docs.net/doc/7811604322.html,/download 第二,新建目录“D:\MongoDB”,解压下载到的安装包,找到bin目录下面全部.exe文件,拷贝到刚创建的目录下。 第三,在“D:\MongoDB”目录下新建“data”文件夹,它将会作为数据存放的根文件夹。 配置Mongo服务端: https://www.360docs.net/doc/7811604322.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/7811604322.html,/KentBeck/junit/downloads https://https://www.360docs.net/doc/7811604322.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/7811604322.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/7811604322.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查询。

Spring-data-mongodb使用手册

Spring-data-mongodb使用手册

文档信息(Document Info) 标题(Title) Spring-data-mongodb使用手册 文档编号(No) 2012-09-19 作者(Author) 张瑜 最后发布时间(Last Update) 2012-09-20 概述(Summarize) 安装mongodb以及掌握spring-data-mongodb的使用方法,一些最佳实践

修订信息(Revise Info) 修订日期(Date)修订人(Reviser) 修订内容(Revises)

附件信息(Attachment Info)

目录 文档信息(Document Info) (2) 修订信息(Revise Info) (3) 附件信息(Attachment Info) (4) 1.概述 (5) 1.1.目的 (5) 1.2.范围 (6) 2.准备 (6) 2.1.环境配置 (6) 2.2.Windows7安装mongodb (6) 2.2.1.配置环境变量 (6) 2.2.2.启动配置mongodb (7) 3.Spring-data-mongodb (8) 3.1.背景 (8) 3.1.1.高级API (9) 3.1.2.低级API (9) 3.2.MongoDbFactory (9) 3.3.MongoTemplate (9) 3.4.Operations (10) 3.4.1.常用Api的方法: (10) 3.5.项目中如何配置实用mongodb (11) 3.6.Callback .................................................................................. 错误!未定义书签。 3.7.Topic和Messaging/PubSub (14) 3.8.Cache (14) 4.NoSQL数据库设计 (14) 4.1.案例1 (14) 5.最佳实践 (14) 5.1.项目案例1(Tinybee项目) (14) 1.概述 1.1. 目的 让团队成员比较快的上手mongodb的相关功能,思考如何结合自己的项目使用。

MongoDB开发使用手册

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

MongoDB基础教程

目录 1下载与安装---------------------------------------------------------------------------------2 2启动------------------------------------------------------------------------------------------2 3基本概念------------------------------------------------------------------------------------3 4常用命令------------------------------------------------------------------------------------3 4.1调用命令----------------------------------------------------------------------------3 4.2use------------------------------------------------------------------------------------4 4.3插入数据----------------------------------------------------------------------------4 4.4查询数据----------------------------------------------------------------------------5 4.4.1查询返回document---------------------------------------------------------6 4.4.2查询返回field---------------------------------------------------------------6 4.4.3结果排序--------------------------------------------------------------------7 4.4.4分页查询--------------------------------------------------------------------7 4.4.5查询数量--------------------------------------------------------------------7 4.5删除数据----------------------------------------------------------------------------7 4.6更新数据(与关系型差异较大)----------------------------------------------7 4.6.1增加field---------------------------------------------------------------------8 4.6.2upset--------------------------------------------------------------------------8 4.6.3批量更新--------------------------------------------------------------------8 4.7索引----------------------------------------------------------------------------------8 5其他------------------------------------------------------------------------------------------9 5.1使用web获得mongoDB的信息--------------------------------------------------9 5.2数据备份和恢复-------------------------------------------------------------------9 5.3导入导出数据----------------------------------------------------------------------9 6使用MongoDB-----------------------------------------------------------------------------9

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实例对我们来说已经足够了。

Morphia 操作 MongoDB

Morphia操作 MongoDB 上两篇文章:https://www.360docs.net/doc/7811604322.html,/hoojo/archive/2011/06/01/2066426.html https://www.360docs.net/doc/7811604322.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/7811604322.html, Blog:https://www.360docs.net/doc/7811604322.html,/IBM_hoojo https://www.360docs.net/doc/7811604322.html,/ 一、准备工作 1、首先,下载mongoDB对Java支持的驱动包 驱动包下载地址:https://https://www.360docs.net/doc/7811604322.html,/mongodb/mongo-java-driver/downloads mongoDB对Java的相关支持、技术:https://www.360docs.net/doc/7811604322.html,/display/DOCS/Java+Language+Center 驱动源码下载:https://https://www.360docs.net/doc/7811604322.html,/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip 在线查看源码:https://https://www.360docs.net/doc/7811604322.html,/mongodb/mongo-java-driver Morphia jar包下载:https://www.360docs.net/doc/7811604322.html,/p/morphia/downloads/list 2、下面建立一个JavaProject工程,导入下载下来的驱动包。即可在Java中使用 Morphia,目录如下:

在C#使用MongoDB

好了,有了前面的准备工作,我们可以开始在C#中使用MongoDB了。不过,由于本示例项目的代码也不少,因此本文将只展示与MongoDB交互的相关代码,更完整的代码请自行查阅示例项目。 接下来,本文演示通过C#完成【客户资料】的一些基本的数据操作,还是先来定义一个客户资料的类型吧。 public sealed class Customer { [MongoId] public string CustomerID { get; set; } public string CustomerName { get; set; } public string ContactName { get; set; } public string Address { get; set; } public string PostalCode { get; set; } public string Tel { get; set; } } 说明:这就是一个简单的类,而且代码中的[MongoId]也是可以不要的(这个后面再说)。 在操作数据库之前,我要说明一下:MongoDB在使用前,并不要求您事先创建好相应的数据库,设计数据表结构! 在MongoDB中,没有【表】的概念,取而代之的是【集合】,也没有【数据记录】的概念,取而代之的是【文档】,我们可以把【文档】理解成一个【对象】,任意的对象,甚至可以有复杂的嵌套层次。因此,我们不用再写代码从【数据表字段】到C#类的【属性,字段】的转换了,现在直接就可以读写整个对象了。 而且MongoDB不支持Join操作,所以,如果有【关联】操作,就需要你自己来处理。 再来定义二个变量: private static readonly string _connectionString = "Server=127.0.0.1"; private static readonly string _dbName = "MyNorthwind"; 新增记录 public void Insert(Customer customer) { customer.CustomerID = Guid.NewGuid().ToString("N"); // 首先创建一个连接 using( Mongo mongo = new Mongo(_connectionString) ) { // 打开连接 mongo.Connect(); // 切换到指定的数据库 var db = mongo.GetDatabase(_dbName); // 根据类型获取相应的集合 var collection = db.GetCollection(); // 向集合中插入对象 collection.Insert(customer); } } 上面的代码中,每一行都有注释,这里就不再解释了。 删除记录 public void Delete(string customerId) { using( Mongo mongo = new Mongo(_connectionString) ) { mongo.Connect(); var db = mongo.GetDatabase(_dbName); var collection = db.GetCollection(); // 从集合中删除指定的对象 collection.Remove(x => x.CustomerID == customerId); } }

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/7811604322.html,/view/3385614.htm 第二部分 基础知识(重点) 快速入门 快速入门Unix系统 安装MongoDB 先根据自己的系统下载自己需要的版本,然后解压即可 32位Linux $ curl https://www.360docs.net/doc/7811604322.html,/linux/mongodb-linux-i686-1.4.3.tgz > mongo.tgz $ tar xzf mongo.tgz 64位Linux $ curl https://www.360docs.net/doc/7811604322.html,/linux/mongodb-linux-x86_64-1.4.3.tgz > mongo.tgz $ tar xzf mongo.tgz 其他版本去下载页面https://www.360docs.net/doc/7811604322.html,/display/DOCS/Downloads找与之对应的版本安装即可。

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的所有聚集集合 复制代码代码如下:

相关文档
最新文档