MongoDB专题

原创 2012年03月30日 15:43:55

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


MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引


MongoDB官方网站:

http://www.mongodb.org/

网站上有可以安装的文件下载,目前版本是2.0.4版本

MongDB入门的书有:

<<MongoDB权威指南>> 作 者:(美) 霍多罗夫,(美) 迪洛尔夫 著,程显峰 译

作为NO SQL数据库的一个典型,MongDB在处理大数据量更新的时候非常优秀,据说能比传统DBMS高3个数量级(1000倍???)。


MongoDB的安装相当简单:

1.从官网下载ZIP包

2.解压缩ZIP.

3.编辑一个启动的脚本startup.bat,本例子为windows 7 版本64位,所以是一个bat文件:

D:\GreenProg\mongodb-win32-x86_64-2.0.4\bin\mongod.exe --dbpath=d:/mongodb/data


4.其中dbpath参数是指的数据存放路径,如果没有建立d:/mongodb/data文件夹,请手工建立.


5.运行脚步,看到如下提示表示启动成功:


D:\GreenProg\mongodb-win32-x86_64-2.0.4>D:\GreenProg\mongodb-win32-x86_64-2.0.4\
bin\mongod.exe --dbpath=d:/mongodb/data
Fri Mar 30 14:52:31 [initandlisten] MongoDB starting : pid=6900 port=27017 dbpat
h=d:/mongodb/data 64-bit host=zhouxj_PC
Fri Mar 30 14:52:31 [initandlisten] db version v2.0.4, pdfile version 4.5
Fri Mar 30 14:52:31 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506
cb21f8ebf
Fri Mar 30 14:52:31 [initandlisten] build info: windows sys.getwindowsversion(ma
jor=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB
_VERSION=1_42
Fri Mar 30 14:52:31 [initandlisten] options: { dbpath: "d:/mongodb/data" }
Fri Mar 30 14:52:31 [initandlisten] journal dir=d:/mongodb/data/journal
Fri Mar 30 14:52:31 [initandlisten] recover : no journal files present, no recov
ery needed
Fri Mar 30 14:52:31 [initandlisten] waiting for connections on port 27017
Fri Mar 30 14:52:31 [websvr] admin web console waiting for connections on port 2
8017
Fri Mar 30 14:53:31 [clientcursormon] mem (MB) res:23 virt:89 mapped:0


MongoDB的管理:

启动控制台命令:mongo(这个有点象oracle的sqlplus),结果如下:

D:\GreenProg\mongodb-win32-x86_64-2.0.4\bin>mongo
MongoDB shell version: 2.0.4
connecting to: test
>

控制命令的语法是javaScript,这个真的很方便.例如:

> x=200
200
> x/4
50
>

关闭数据服务命令.

> use admin
switched to db admin
> db.shutdownServer();
Fri Mar 30 15:12:32 DBClientCursor::init call() failed
Fri Mar 30 15:12:32 query failed : admin.$cmd { shutdown: 1.0 } to: 127.0.0.1
server should be down...
Fri Mar 30 15:12:32 trying reconnect to 127.0.0.1
Fri Mar 30 15:12:33 reconnect 127.0.0.1 failed couldn't connect to server 127.0.
0.1
Fri Mar 30 15:12:33 Error: error doing query: unknown shell/collection.js:151
>

开发(java语言):

java开发需要下载java驱动包,地址是:https://github.com/mongodb/mongo-java-driver/releases

开发示例:

import java.net.UnknownHostException;
import java.util.Set;

import com.mongodb.Mongo;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.MongoException;

public class MongoTest {
    public static void main(String[] args) {
        // Mongo m = new Mongo();
        // or
        // Mongo m = new Mongo( "localhost" );
        // or
        Mongo m;
        try {
            m = new Mongo("localhost", 27017);

            DB db = m.getDB("mydb");
            
            //boolean auth = db.authenticate(myUserName, myPassword);  //可选的权限控制
            Set<String> colls = db.getCollectionNames();

            for (String s : colls) {
                System.out.println(s);  //取得所有文档打印
            }
            
            DBCollection coll = db.getCollection("testCollection"); //按名字取文档
            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);  //对指定文档插数据,
            
            DBObject myDoc = coll.findOne();  //查找一个数据
            System.out.println(myDoc);
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MongoException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

运行结果可能是这样:

system.indexes
testCollection
{ "_id" : { "$oid" : "4f756443848c86ccbb35f80e"} , "name" : "MongoDB" , "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102}}


mongDB的特性是能自动分片的处理来响应高并发的数据读写要求,默认情况下mongDB是非精确的处理数据,

请参看CAP原则,对于要求严格一致性的数据要求不适合用mongDB.如何部署自动分片的mongDB集群,请参看相关文档.

Mongodb专题--windows安装Mongodb

一、准备工作 安装环境:Windows 10 + mongodb 3.4.9 下载地址:官网下载地址 (我下载的是:mongodb-win32-x86_64-2008plus-ssl-3.4.9-...
  • zzulishulei
  • zzulishulei
  • 2017年10月25日 13:40
  • 72

图论专题汇总

http://www.cnblogs.com/kuangbin/p/3228371.htmlhttp://codeforces.com/contest/546/problem/E 网络流...
  • yp_2013
  • yp_2013
  • 2016年04月10日 10:40
  • 468

dede专题路径special修改

dede cms  专题/special/路径的名称修改为/z/原文地址:dede专题路径special修改作者:小雨 dedecms的默认专题路径是 /special/ 感觉太长,怎么自定义这个路...
  • QQ39921050
  • QQ39921050
  • 2014年11月25日 14:04
  • 1012

SEM最核心的部分专题页:如何扒专题页面?(古志强网络营销师)

古志强网络营销师: 专题页【SEM最核心的部分之一】 1、什么是专题页面 专门介绍一个主题的页面 特征:基本没有跳走的链接(电话/咨询/表单/下载等不算) 2、怎么搞定专题页 策划...
  • guwugou
  • guwugou
  • 2017年10月14日 10:14
  • 374

专题页面二级页面

需要访问的地址:http://www.chihuo876.com/app.php/topic/id   //注意:此处的 topic小写,而一级页面上是大写 专题页面二级页面: ...
  • chenyong05314
  • chenyong05314
  • 2013年05月23日 16:11
  • 526

【phpcms-v9】谁说专题页面不能维护和添加碎片?

1.专题页面添加和维护碎片的位置与内容页面添加和维护碎片的位置是不一样的,很多人习惯了从内容页面添加和维护碎片,而在后台找不到专题;其实专题页面也是可以从后台维护的:位置:后台-》内容-》专题-》维护...
  • yanhui_wei
  • yanhui_wei
  • 2012年09月04日 13:30
  • 2249

Discuz X 多页面专题制作教程

http://www.discuz.net/forum.php?mod=viewthread&tid=1851776&reltid=2950818&pre_thread_id=2667972&pre_...
  • jaray
  • jaray
  • 2012年07月16日 01:14
  • 5630

Java专题之集合

Java 专题之集合详解 在实际开发中我们经常会遇到Java中各个集合的应用,那么本专题就专门和大家分享这些以ArrayList,HashSet,HashMap为中心的集合知识,该专...
  • chengyiqingqing
  • chengyiqingqing
  • 2017年02月19日 20:20
  • 237

MongoDB资料汇总专题

原文地址:http://blog.nosqlfan.com/html/3548.html 1.MongoDB是什么 MongoDB介绍PPT分享MongoDB GridFS介绍PP...
  • tywei2012
  • tywei2012
  • 2013年10月23日 08:10
  • 710

BFS DFS 搜索专题合集

在准备蓝桥杯,最重要的当然是搜索啦啦,开个搜索专题专门贴题,不定时更新。 hdu 2181 哈密顿绕行世界问题 因为数据不大,所以简单的深搜就可以了,注意从小到大排下序,防止数据随机给。 #i...
  • woyuhuaijin
  • woyuhuaijin
  • 2016年04月27日 21:35
  • 707
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MongoDB专题
举报原因:
原因补充:

(最多只允许输入30个字)