zoukankan      html  css  js  c++  java
  • 个人技能总结4--MongoDB在windows上安装以及java中的增删改查

    1.windows下的安装创建

    http://tech.it168.com/a2011/0603/1200/000001200064_2.shtml

    http://blog.csdn.net/xiaoxing598/article/details/54233044

    2.Java操作mongodb

    http://www.cnblogs.com/zhwl/p/3491213.html

    http://blog.csdn.net/xiaoyw71/article/details/49633831

    http://blog.csdn.net/mcpang/article/details/8730849

    一.定义,用法:

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

    MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。

    你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

    你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。

    如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。

    Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

    MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。

    Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。

    MapReduceMap函数调用emit(key,value)遍历集合中所有的记录,将keyvalue传给Reduce函数进行处理。

    Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommandmapreduce命令来执行MapReduce操作。

    GridFSMongoDB中的一个内置功能,可以用于存放大量小文件。

    MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

    MongoDB支持各种编程语言:RUBYPYTHONJAVAC++PHPC#等多种语言。

    MongoDB安装简单。

    二.安装创建:

    先下载:http://www.mongodb.org/downloads

    下载后安装,此处我的安装路径是默认路劲:C:Program FilesMongoDB

    打开bin目录:C:Program FilesMongoDBServer3.4in

    接下来我们创建一个存放数据的位置:自定义,我的是D:mymongodbdata

    然后以管理员身份运行命令行:

    ①运行命令:mongod --dbpath “D:mymongodbdata”

    ②运行命令:mongod --dbpath “D:mymongodbdata” --logpath “D:mymongodblogs.txt” --install --serviceName “MongoDB”

    接着:cmd打开services.msc命令,查看服务

    mongod --remove --serviceName "MongoDB"

    说明已安装成功,右击启动该服务。

    三.Java中操作MongoDB

    a) 首先下载jMongoDB的Java驱动

    1. http://central.maven.org/maven2/org/mongodb/
    2. 选择同一个版本
    3. 点击http://api.mongodb.org/java/current/index.html 了解更多java驱动的API信息
    4. 下载一下三个文件

    mongo-Java-driver-2.11.4.jar 
    mongo-java-driver-2.11.4-javadoc.jar 
    mongo-java-driver-2.11.4-sources.jar

    通过maven依赖

    <dependency>

        <groupId>org.mongodb</groupId>

        <artifactId>mongo-java-driver</artifactId>

        <version>2.11.4</version>

    </dependency>

    b) 使用:参考MongodbTest项目中的Testclass.java类以及ZSGC.java类。

    1. http://blog.csdn.net/mcpang/article/details/8730849

    package com;

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

    import org.junit.Test;

    import com.mongodb.BasicDBObject;
    import com.mongodb.DB;
    import com.mongodb.DBCollection;
    import com.mongodb.DBObject;
    import com.mongodb.Mongo;
    import com.mongodb.MongoClient;
    import com.mongodb.ServerAddress;

    public class Testclass{

    public static void main(String[] args) throws UnknownHostException {
    //方式一:直接连接单一mongodb服务器(注意这种方式不会自动发现mongodb集群中的主服务器)
    MongoClient mongoClient1 = new MongoClient();
    // Mongo mongoClient1 = new Mongo();
    //方式二(指定ip):
    //MongoClient mongoClient2 = new MongoClient( "localhost" );
    ////方式二(指定ip、端口):
    //MongoClient mongoClient3 = new MongoClient( "localhost" , 27017 );
    ////方式三:连接到mongodb服务器集群(会自动发现主服务器)
    //MongoClient mongoClient4 = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),
    // new ServerAddress("localhost", 27018),
    // new ServerAddress("localhost", 27019)));

    DB db = mongoClient1.getDB("local");
    DBCollection users = db.getCollection("users");
    /**
    * DBObject代表文档,这是一个接口,java中提供了多种实现,最简单的就是BasicDBObject了
    */
    DBObject user = new BasicDBObject();
    user.put("name", "jimmy");
    user.put("age", "34");
    DBObject address = new BasicDBObject();
    address.put("city", "bj");
    address.put("street", "bq road");
    address.put("mail", "ufpark 68#");
    address.put("测试","测试结果");
    /**
    * 对于内嵌文档,我们需要先将内嵌文档填充后,再填充到外层文档中!
    */
    user.put("address", address);
    // 将该文档插入到集合中
    users.insert(user);
    // 从集合中查询数据,我们就查询一条,调用findOne即可
    DBObject dbUser = users.findOne();
    System.out.println("name" + " : " + dbUser.get("name") );
    System.out.println("age" + " : " + dbUser.get("age") );
    DBObject dbAddress = (DBObject)user.get("address");
    System.out.println("city" + " : " + dbAddress.get("city") );
    System.out.println("street" + " : " + dbAddress.get("street") );
    System.out.println("mail" + " : " + dbAddress.get("mail") );
    //获取到MongoDB上的所有集合,无法实现。
    // Set<String> colls = db.getCollectionNames();
    // for (String s : colls) {
    // System.out.println(s+"dsdsfdf");
    // }

    //获取单一集合
    //调用db的getCollection(String collectionName)方法获得单一集合
    // DBCollection coll = db.getCollection("collName");
    // System.out.println(coll);
    }

    public void creatConnect() throws Exception{
    //方式一:直接连接单一mongodb服务器(注意这种方式不会自动发现mongodb集群中的主服务器)
    MongoClient mongoClient1 = new MongoClient();
    //方式二(指定ip):
    //MongoClient mongoClient2 = new MongoClient( "localhost" );
    ////方式二(指定ip、端口):
    //MongoClient mongoClient3 = new MongoClient( "localhost" , 27017 );
    ////方式三:连接到mongodb服务器集群(会自动发现主服务器)
    //MongoClient mongoClient4 = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),
    // new ServerAddress("localhost", 27018),
    // new ServerAddress("localhost", 27019)));

    DB db = mongoClient1.getDB("local");

    //获取到MongoDB上的所有集合
    Set<String> colls = db.getCollectionNames();
    for (String s : colls) {
    System.out.println(s+"dsdsfdf");
    }

    //获取单一集合
    //调用db的getCollection(String collectionName)方法获得单一集合
    // DBCollection coll = db.getCollection("testCollection");


    }


    }

    package com;

    import java.util.Date;

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

    public class ZSGC {

    public static void main(String[] args) {
    try {


    //建立连接,无参默认是("localhost",27017)
    Mongo mongo = new Mongo("127.0.0.1",27017);


    /**** 获取数据库db ****/
    // 如果数据库不存在,则创建一个
    DB db = mongo.getDB("testMongoDb");
    //数据库名称,密码。
    // boolean ok = db.authenticate("root","root".toCharArray());
    // if(ok){
    // System.out.println("db connection success!");
    //
    // }{
    // System.out.println("db connection fail !");
    // }
    /**** 获取集合相当于mysql的表,"user"为表名 ****/
    // 如果集合不存在则创建一个
    DBCollection table = db.getCollection("user");

    /**** 增 ****/
    // 创建一个文本来存储key,value
    BasicDBObject document = new BasicDBObject();
    document.put("name", "mkyong");
    document.put("age", 30);
    document.put("createdDate", new Date());
    table.insert(document);

    /**** 查 ****/
    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "mkyong");

    DBCursor cursor = table.find(searchQuery);

    while (cursor.hasNext()) {
    System.out.println(cursor.next());
    }

    /**** 改 ****/
    // 根据query查询到文本,然后修改该文本。
    BasicDBObject query = new BasicDBObject();
    query.put("name", "mkyong");

    BasicDBObject newDocument = new BasicDBObject();
    newDocument.put("name", "mkyong-updated");

    BasicDBObject updateObj = new BasicDBObject();
    updateObj.put("$set", newDocument);

    table.update(query, updateObj);

    /**** 删 ****/
    //根据query查询到文本然后删除。DBCursor文本
    BasicDBObject searchQuery2
    = new BasicDBObject().append("name", "mkyong-updated");

    DBCursor cursor2 = table.find(searchQuery2);

    while (cursor2.hasNext()) {
    System.out.println(cursor2.next());
    table.remove(searchQuery2);
    }
    /**** 删除数据集 ****/
    db.getCollection("user").drop();

    /**** Done ****/
    System.out.println("Done");

    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    }

  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/ycmxm/p/6723787.html
Copyright © 2011-2022 走看看