MongoDB在windows上安裝以及java中的增刪改查

來源:互聯網
上載者:User

標籤:arch   替換   自訂   install   其他   rgs   lis   int   win   

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主要是用來對資料進行批量處理和彙總操作。

Map和Reduce。Map函數調用emit(key,value)遍曆集合中所有的記錄,將key與value傳給Reduce函數進行處理。

Map函數和Reduce函數是使用Javascript編寫的,並可以通過db.runCommand或mapreduce命令來執行MapReduce操作。

GridFS是MongoDB中的一個內建功能,可以用於存放大量小檔案。

MongoDB允許在服務端執行指令碼,可以用Javascript編寫某個函數,直接在服務端執行,也可以把函數的定義儲存在服務端,下次直接調用即可。

MongoDB支援各種程式設計語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

MongoDB安裝簡單。

 

二.安裝建立:

 

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

下載後安裝,此處我的安裝路徑是預設路勁:C:\Program Files\MongoDB

開啟bin目錄:C:\Program Files\MongoDB\Server\3.4\bin

接下來我們建立一個存放資料的位置:自訂,我的是D:\mymongodb\data

然後以管理員身份運行命令列:

①運行命令:mongod --dbpath “D:\mymongodb\data”

②運行命令:mongod --dbpath “D:\mymongodb\data” --logpath “D:\mymongodb\logs.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();
}
}

}

MongoDB在windows上安裝以及java中的增刪改查

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.