MongoDB从环境搭建到代码编程(Window 环境)

本人开发环境:

window Server 2008 , 64 位系统

服务端

MongoDB 下载地址:http://www.mongodb.org/downloads  (本人己下好的在百度网盘 : http://pan.baidu.com/s/1nuX8eSh)

mogodb 破解版客户端

http://pan.baidu.com/s/1geKTeO7

java 访问 MongoDB 驱动:

https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongo-java-driver/2.13.2/

 

服务端安装篇

1,服务端程序是个 exe 程序,安装完之后默认在  C:\Program Files\MongoDB\Server\3.2 目录下。

2,安装完之后在 上面目录下,. 创建文件夹 C:\Program Files\MongoDB\Server\3.2\data\db、C:\Program Files\MongoDB\Server\3.2\data\log,分别用来安装 db 和日志文件,在 log 文件夹下创建一个日志文件 MongoDB.log,即 C:\Program Files\MongoDB\Server\3.2\data\log\MongoDB.log

3,

    . 运行 cmd.exe 进入 dos 命令界面,执行下列命令

  > cd C:\Program Files\MongoDB\Server\3.2\bin

  > C:\Program Files\MongoDB\Server\3.2\bin>mongod -dbpath "C:\Program Files\MongoDB\Server\3.2\data\db"

    会看到命令行中有,wating for connetions on port 27017 , 说明己启动服务

4,新开一个 cmd 窗口,进入 mongodb 的 bin 目录,输入 mongo 或者 mongo.exe,出现如下信息说明测试通过,此时我们已经进入了 test 这个数据库.

输入 exit 或者 ctrl+C 可退出。

5,MongoDB 安装为 windows 服务

      

还是运行 cmd,进入 bin 文件夹,执行下列命令

 > C:\Program Files\MongoDB\Server\3.2\bin>mongod --dbpath "C:\Program Files\MongoDB\Server\3.2\data\db" --logpath "C:\Program Files\MongoDB\Server\3.2\data\log\MongoDB.log" --install --serviceName "MongoDB"

 这里 MongoDB.log 就是开始建立的日志文件,--serviceName "MongoDB" 服务名为 MongoDB

 接着启动 mongodb 服务

 

注:以上操作己开启两个 cmd 命行,服务启动前关闭第一个命令行。

 

在使用客户端连接 mongodb 服务端进你会发现,mongodb 没有设置权限验证,是的,默认 mongodb 不验证权限。。

如何设置权限呢?  

 用户权限设置篇

1. 首先使用管理员身份打开 cmd.exe,启动 cmd 命令窗口。

2,创建用户

>use admin

>db.createUser({user: "accountUser",pwd: "password",roles: [ "readWrite", "dbAdmin"]})

注:mongodb 的 addUser 方法在后面的版本 中己废弃了。见: https://docs.mongodb.com/manual/reference/method/db.createUser/

3, 上一部设置服务的命名中加入 --auth,设置服务以授权验证启动(mongod  --auth --dbpath "C:\Program Files\MongoDB\Server\3.2\data\db" --logpath "C:\Program Files\MongoDB\Server\3.2\data\log\MongoDB.log" --install --serviceName "MongoDB")

   若你在上一步己安装同名服务时,你需要先卸载己存在的服务,没有安装的直接执行 C 步骤。

  a,NET stop MongoDB   (关闭服务)

  b,mongod --dbpath "C:\Program Files\MongoDB\Server\3.2\data\db" --logpath "C:\Program Files\MongoDB\Server\3.2\data\log\MongoDB.log" --remove --serviceName "MongoDB"

   c,mongod  --auth --dbpath "C:\Program Files\MongoDB\Server\3.2\data\db" --logpath "C:\Program Files\MongoDB\Server\3.2\data\log\MongoDB.log" --install --serviceName "MongoDB"

  

4,启动服务,登录试试看看

上面 1 表示登录成功,0 表示登录失败。

注:以上图片是盗别人的,他的 MongoDB 版本要小于我所提供的版本

 

代码编程篇

以下代码为 java 访问 mongdb 代码

package com.mkyong.core;  

import java.net.UnknownHostException;
import java.util.Date;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

/**

  • Java + MongoDB Hello world Example

*/
public class App {
public static void main(String[] args) {

    </span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)"> {  

        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Connect to MongoDB ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span>  
        <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Since 2.10.0, uses MongoClient  
        </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">MongoClient mongo = new MongoClient("localhost", 27017);  </span>
Mongo mongo = new Mongo("127.0.0.1",27017);
        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Get database ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span>  
        <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> if database doesn't exists, MongoDB will create it for you  </span>
        DB db = mongo.getDB("testMongoDb"<span style="color: rgba(0, 0, 0, 1)">);  
        </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">database username  root  and password root   </span>
        <span style="color: rgba(0, 0, 255, 1)">boolean</span> ok = db.authenticate("root","root"<span style="color: rgba(0, 0, 0, 1)">.toCharArray());  
        </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(ok){  
            System.out.println(</span>"db connection success!"<span style="color: rgba(0, 0, 0, 1)">);  
              
        }{  
            System.out.println(</span>"db connection fail !"<span style="color: rgba(0, 0, 0, 1)">);  
        }  
        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Get collection / table from 'testMongoDb' ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span>  
        <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> if collection doesn't exists, MongoDB will create it for you  </span>
        DBCollection table = db.getCollection("user"<span style="color: rgba(0, 0, 0, 1)">);  

        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Insert ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span>  
        <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> create a document to store key and value  </span>
        BasicDBObject document = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> BasicDBObject();  
        document.put(</span>"name", "mkyong"<span style="color: rgba(0, 0, 0, 1)">);  
        document.put(</span>"age", 30<span style="color: rgba(0, 0, 0, 1)">);  
        document.put(</span>"createdDate", <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Date());  
        table.insert(document);  

        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Find and display ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">  
        BasicDBObject searchQuery </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> BasicDBObject();  
        searchQuery.put(</span>"name", "mkyong"<span style="color: rgba(0, 0, 0, 1)">);  

        DBCursor cursor </span>=<span style="color: rgba(0, 0, 0, 1)"> table.find(searchQuery);  

        </span><span style="color: rgba(0, 0, 255, 1)">while</span><span style="color: rgba(0, 0, 0, 1)"> (cursor.hasNext()) {  
            System.out.println(cursor.next());  
        }  

        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Update ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span>  
        <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> search document where name="mkyong" and update it with new values  </span>
        BasicDBObject query = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> BasicDBObject();  
        query.put(</span>"name", "mkyong"<span style="color: rgba(0, 0, 0, 1)">);  

        BasicDBObject newDocument </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> BasicDBObject();  
        newDocument.put(</span>"name", "mkyong-updated"<span style="color: rgba(0, 0, 0, 1)">);  

        BasicDBObject updateObj </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> BasicDBObject();  
        updateObj.put(</span>"$set"<span style="color: rgba(0, 0, 0, 1)">, newDocument);  

        table.update(query, updateObj);  

        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Find and display ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">  
        BasicDBObject searchQuery2   
            </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> BasicDBObject().append("name", "mkyong-updated"<span style="color: rgba(0, 0, 0, 1)">);  

        DBCursor cursor2 </span>=<span style="color: rgba(0, 0, 0, 1)"> table.find(searchQuery2);  

        </span><span style="color: rgba(0, 0, 255, 1)">while</span><span style="color: rgba(0, 0, 0, 1)"> (cursor2.hasNext()) {  
            System.out.println(cursor2.next());  
        }  

        </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">** Done ***</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">  
        System.out.println(</span>"Done"<span style="color: rgba(0, 0, 0, 1)">);  

    } </span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (UnknownHostException e) {  
        e.printStackTrace();  
    } </span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (MongoException e) {  
        e.printStackTrace();  
    }  

}  

}

 

The End

分享下别人的资料

转载请注明来自:http://www.cnblogs.com/jackicalSong/

------------------------------------------------------------------------

java 访问 mongodb
http://www.jb51.net/article/65630.htm
http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html

mongodb 安装与配置
http://www.cnblogs.com/lecaf/archive/2013/08/23/mongodb.html

http://blog.sina.com.cn/s/blog_6e4059a40101b5z7.html