Java mongodb基本操作入門

14271 ワード

ダウンロード:https://www.mongodb.org/downloads
複数バージョンのダウンロード:https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl
http://downloads.mongodb.org/win32/mongodb-win32-x86_64-latest.zip
http://docs.mongodb.org/manual/
データベースの起動:./bin/mongod--dbpath=data mongo shellアクセスデータベースbin/mongo httpデータベースの表示:http://192.168.1.132:27017/基本操作:挿入:db.person.insert({“name”:“jack”,“age”:20});db.person.insert({"name":"joe","age":25}); db.person.insert({"name":"java","age":23}); 検索:db.person.find();db.person.find({"name":"java"}); db.person.find({"age":23}); db.person.update(「name」:「java」}、「name」:「java_name」、「age」:1024})を更新します.削除:db.person.remove({"name":"java_name"});http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html readmeドキュメント:
COMPONENTS

  bin/mongod - The database process.

  bin/mongos - Sharding controller.

  bin/mongo  - The database shell (uses interactive javascript).
UTILITIES
  bin/mongodump         - MongoDB dump tool - for backups, snapshots, etc..
  bin/mongorestore      - MongoDB restore a dump
  bin/mongoexport       - Export a single collection to test (JSON, CSV)
  bin/mongoimport       - Import from JSON or CSV
  bin/mongofiles        - Utility for putting and getting files from MongoDB GridFS
  bin/mongostat         - Show performance statistics
RUNNING

  For command line options invoke:



    $ ./mongod --help



  To run a single server database:



    $ mkdir /data/db

    $ ./mongod

    $

    $ # The mongo javascript shell connects to localhost and test database by default:

    $ ./mongo 

    > help



DRIVERS



  Client drivers for most programming languages are available at mongodb.org.  Use the 
  shell ("mongo") for administrative tasks.

BIT BUILD NOTES

  MongoDB uses memory mapped files.  If built as a 32 bit executable, you will

  not be able to work with large (multi-gigabyte) databases.  However, 32 bit

  builds work fine with small development databases.
Java操作mongodb例:
この例の前にmongod.exeのサービスを起動する必要があります.起動すると、次のプログラムがスムーズに実行されます.
1、SimpleTest.javaを創立して、簡単なmongodyデータベース操作を完成する
Mongo mongo = new Mongo();
これにより、現在のマシンのlocalhostアドレスにデフォルトで接続されたMongoDBのデータベース接続オブジェクトが作成され、ポートは27017です.
DB db = mongo.getDB(“test”);
これによりtestのデータベースが得られ,mongodbにこのデータベースが作成されていなければ正常に動作する.前の記事を読んだことがあるなら、mongodyはこのデータベースを作成せずにデータの追加操作を完了することができます.追加すると、このライブラリがない場合、mongodbは自動的に現在のデータベースを作成します.
dbが得られました.次に、dbオブジェクトのgetCollectionメソッドで完了する「集約コレクションDBCollection」を取得します.
DBCollection users = db.getCollection("users");
これにより、データベースの「テーブル」に相当するDBCollectionが得られます.
package com.jiepu.mongodb;

import java.util.Set;

import org.bson.Document;

import com.alibaba.fastjson.JSON;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.result.UpdateResult;

/**
 * Hello world!
 * 
 */
public class App {
	//private static String ip="192.168.1.132";
	private static String ip="127.0.0.1";
	private static int port=27017;
	public static void main(String[] args) {
	

		test001();
		//test002();
		//test003();
		
		
		System.out.println("Hello World!");

	}


	private static void test003() {
		System.out.println("============");
		Mongo mg = new Mongo(ip, port);
		
		System.out.println(mg.getDatabaseNames());
		
		DB db = mg.getDB("test");
	
		Set collectionNames = db.getCollectionNames();
		for (String string : collectionNames) {
			System.out.println(string);
		}
		// db  
		DBCollection dbCollection = db.getCollection("person");

		DBCursor cur = dbCollection.find();
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}

		
		
	}

	private static void test001() {

		System.out.println("======   api======");
		MongoClient mongoClient = new MongoClient(ip, port);

		System.out.println("   :"+mongoClient.getDatabaseNames());

		MongoDatabase database = mongoClient.getDatabase("test");

		MongoIterable names=database.listCollectionNames();
		for (String string : names) {
			
			System.out.println("    :"+string);
		}
		MongoCollection collections = database
				.getCollection("person");
		//   
		collections.drop();
		/*
		FindIterable findIterable = collections.find();
		for (Document document : findIterable) {
			System.out.println(document);
		}*/
		
		collections.createIndex(new BasicDBObject("name",1));//1    
		
		for(int i=0;i<15;i++)
		{
			Document cDocument=new Document();
			cDocument.put("name", "data"+i);
			cDocument.put("age", 32+i);
			//add
			collections.insertOne(cDocument);
		}
		//delete
		collections.deleteOne(new BasicDBObject("name","data2"));
		collections.deleteMany(new BasicDBObject("name","data3"));
		int count=0;
		for (Document document : collections.find()) {
			System.out.println(document);
			count++;
		}
		System.out.println("count="+count);
		
		System.out.println("find ");
		
		//find
		for (Document document : collections.find(new BasicDBObject("age",33)))
		{
			System.out.println(document.toJson());
			
		}
		
		//Document updateDocument=new Document("name","fuck");
		
		//edit
		
		//UpdateResult updateResult=collections.updateOne(new Document("name","data14"), new Document("name","nishizhu    ").append("age", 1024));

		//UpdateResult updateResult=collections.updateMany(new BasicDBObject("age","34"), new Document("name","fuck").append("age", 1024));
		//System.out.println(JSON.toJSONString(updateResult));
		
		
		//find
		for (Document document : collections.find(new BasicDBObject("age",1024)))
		{
			System.out.println(document.toJson());
			
		}
		
		//collections.createIndex(builder.get());
		
		
		
		mongoClient.close();

	}

	private static void test002() {
		System.out.println("=====   api=======");
		
		MongoClient mongoClient = new MongoClient(ip, port);
		
		System.out.println("   :"+mongoClient.getDatabaseNames());
	
		DB db = mongoClient.getDB("test");	
		Set collectionNames = db.getCollectionNames();
		for (String tablename : collectionNames) {
			System.out.println(" :"+tablename);
		}
		// db  
		DBCollection dbCollection = db.getCollection("person2");
		dbCollection.drop();
		for(int i=0;i<15;i++)
		{
			BasicDBObject cDocument=new BasicDBObject();
			cDocument.put("name", "data"+i);
			cDocument.put("age", 32+i);
			//add
			dbCollection.insert(cDocument);
			
		}
		DBCursor cur = dbCollection.find();
		System.out.println("count="+cur.count());
		while (cur.hasNext()) {
			DBObject dbObject=cur.next();
			System.out.println(dbObject);
		}
		
		dbCollection.remove(new BasicDBObject("name","data13"));
		dbCollection.update(new BasicDBObject("name","data14"), new BasicDBObject("name","nishizhu    ").append("age", 1024));

		cur = dbCollection.find();
		System.out.println("count="+cur.count());
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}
	}
}
package com.jiepu.mongodb;

import java.net.UnknownHostException;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import org.junit.Test;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.util.JSON;

public class TestMongoDriver {

    @Test
    public void testCRUD() throws UnknownHostException {
        //    mongodb
        Mongo mongo = new Mongo("192.168.1.132", 27017);

        //      test
        DB db = mongo.getDB("test");

        //          
        Set colls = db.getCollectionNames();
        for (String s : colls) {
            System.out.println(s);
            //      Collection(          " ")
            if (!s.equals("system.indexes")) {
                db.getCollection(s).drop();
            }
        }

        //     emp( :emp   ,mongodb        )
        DBCollection coll = db.getCollection("emp");

        // delete all
        DBCursor dbCursor = coll.find();
        for (DBObject dbObject : dbCursor) {
            coll.remove(dbObject);
        }

        // create
        BasicDBObject doc = new BasicDBObject("name", "   ").append("sex", " ")
                .append("address",
                        new BasicDBObject("postcode", "201202").append(
                                "street", "   888 ").append("city", "  "));
        coll.insert(doc);

        // retrieve
        BasicDBObject docFind = new BasicDBObject("name", "   ");
        DBObject findResult = coll.findOne(docFind);
        System.out.println(findResult);

        // update
        doc.put("sex", "MALE");//  sex   " ",  "MALE"
        coll.update(docFind, doc);
        findResult = coll.findOne(docFind);
        System.out.println(findResult);

        coll.dropIndexes();//        
        // create index
        coll.createIndex(new BasicDBObject("name", 1)); // 1    

        //     
        UserData userData = new UserData("jimmy", "123456");
        Set pets = new HashSet();
        pets.add("cat");
        pets.add("dog");
        Map favoriteMovies = new HashMap();
        favoriteMovies.put("dragons", "Dragons II");
        favoriteMovies.put("avator", "Avator I");
        userData.setFavoriteMovies(favoriteMovies);
        userData.setPets(pets);
        userData.setBirthday(getDate(1990, 5, 1));
        BasicDBObject objUser = new BasicDBObject("key", "jimmy").append(
                "value", toDBObject(userData));
        coll.insert(objUser);
        System.out.println(coll.findOne(objUser));
    }

    /**
     *    Object     mongodb DBObject  
     * 
     * @param obj
     * @return
     */
    private DBObject toDBObject(Object obj) {
        String json = com.alibaba.fastjson.JSON.toJSONString(obj);
        return (DBObject) JSON.parse(json);
    }

    /**
     *       
     * 
     * @param year
     * @param month
     * @param day
     * @return
     */
    private Date getDate(int year, int month, int day) {
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(year, month - 1, day);
        return calendar.getTime();

    }

}
package com.jiepu.mongodb;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import java.util.Set;

public class UserData implements Serializable {

    private static final long serialVersionUID = -4770493237851400594L;
    private String userName;
    private String password;
    private Set pets;
    private Map favoriteMovies;
    private Date birthday;

    public UserData() {
    }

    public UserData(String userName, String passWord) {
        this.userName = userName;
        this.password = passWord;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Set getPets() {
        return pets;
    }

    public void setPets(Set pets) {
        this.pets = pets;
    }

    public Map getFavoriteMovies() {
        return favoriteMovies;
    }

    public void setFavoriteMovies(Map favoriteMovies) {
        this.favoriteMovies = favoriteMovies;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

  4.0.0

  com.jiepu
  mongodb
  0.0.1-SNAPSHOT
  jar

  mongodb
  http://maven.apache.org

  
    UTF-8
  

  
  	
  		com.alibaba
  		fastjson
  		1.1.41
  	
    
      junit
      junit
      4.10
      test
    
    
        org.mongodb
        mongodb-driver
        3.0.2
    
     
        org.mongodb
        mongo-java-driver
        3.0.2
    
     
        org.mongodb
        bson
        3.0.2