導航:首頁 > 編程語言 > mongodb驅動Java

mongodb驅動Java

發布時間:2023-04-25 15:28:22

1. mongo-java-driver,java怎麼查詢MongoDB,並做時間分組統計

java操作mongodb進行查詢,常用篩選條件的設置如下:

條件列表:

BasicDBListcondList=newBasicDBList();

臨時條件對象:

BasicDBObjectcond=null;

DBCollectioncoll=db.getCollection("A");

1、$where

在某種應用場合,若要集合A查詢文檔且要滿足文檔中某些屬性運算結果,可以編寫一腳本函數用where進行設置,比如:

某集合中存放的用戶信息,包括姓名、年齡、手機號、地址等,要篩選出年齡大於20且小於等於40的用戶,我們可以這樣:

StringageStr="function(){returnparseFloat(this.age)>20&&parseFloat(this.age)<=40};"洞廳;

cond=納信隱newBasicDBObject();

cond.put("$where",ageStr);

放入條件列表

condList.add(cond);

2、$in

接1實例中,要查詢年齡為23、40、50的用戶信息,我們可以這樣:

創建一個臨時的條件列表對象,將條件值分別添加進去

BasicDBListvalues=newBasicDBList();

values.add(23);

values.add(40);

values.add(50);

cond=newBasicDBObject();

cond.put("age",newBasicDBObject("$in",values));

放入條件列表

condList.add(cond);

3、模糊匹配

接1實例中,要按照用戶的姓名進行模糊查詢,如:王,我們可以這樣做:

使用不區分大小寫的模糊查詢

3.1完全匹配

Patternpattern=Pattern.compile("^王$",Pattern.CASE_INSENSITIVE);

3.2右匹配

Patternpattern=Pattern.compile("^.*王$",Pattern.CASE_INSENSITIVE);

3.3左匹配

Patternpattern=Pattern.compile("^王.*$",Pattern.CASE_INSENSITIVE);

3.4模糊匹配

Patternpattern=Pattern.compile("^.*王.*$",Pattern.CASE_INSENSITIVE);

cond=newBasicDBObject();

cond.put("name",cond);

放入條件列表

condList.add(cond);

4、$gte/$lte/$gt/$lt

接1實例中,要篩選出年齡大於20且小於等於40的用戶,我們可以這樣:

cond=newBasicDBObject();

cond.append("age",newBasicDBObject("$gt",20));

cond.append("age",newBasicDBObject("$lte",40));

放入條件列表

condList.add(cond);

在日常的查詢中篩選的條件可能會有多個,而且多個條件之間都是且的關系,結合上例1、2、3、4中

將每種條件添加到條件列坦念表中,我可以這樣:

BasicDBObjectsearchCond=newBasicDBObject();

searchCond.put("$and",condList);

然後查詢數據:

DBCursorret=coll.find(searchCond);

2. mongodb的java驅動怎麼安裝,已經安裝了mongodb,下載了java驅動,不知道下一步怎麼做,

安裝:mongod --dbpath "E:\tool\db\mongo\dbfile" --logpath "E:\tool\db\mongo\dbfile\logs.txt" --install --serviceName "MongoDB"
卸載:mongod --remove --serviceName "MongoDB"

3. MongoDB java Driver 3.x 要怎麼用.求解

第一步:安裝MongoDB無需太多的繁雜步驟,你只要在MongoDB官方網站查看安裝說明,根據自己的操作系統進行選擇適應的版本即可。第二步:啟動MongoDB伺服器這一步也很簡單。運行mongod.exe文件里的bin文件夾(我使用的是Windows OS系統),並啟動MongoDB伺服器。在默認的情況下伺服器將啟動埠27017,你需要在安裝過程中創建將數據存儲在/data/db目錄里。第三步:啟動MongoDB shell指令你可以通過運行mongo.exe文件來啟動MongoBD shell。第四步:利用MongoDB創建資料庫利用MongoDB在MongoDB shell中輸入以下內容建立一個名為「company」的資料庫。use company 記住,除非你在MangoDB里保存了一些東西,否則它不會自動為你保存。使用下面的命令幫你查看可用的資料庫,它會顯示「company」尚未被創建。show dbs; 第五步:在MongoDB中保存數據使用下面的命令來保存employee 數據代表一個collection,將其命名為employees。employee = {name : "A", no : 1} db.employees.save(employee) 通過使用下面的命令來查看collection里的數據。db.users.find(); 如何使用Java操作MongoDB?下面是是一段簡單的Java代碼,你可以在這里獲得mongo-java驅動。很簡單,只需要使用下面的代碼,重復上面的操作即可。package com.eviac.blog.mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MongoDBClient { public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("company"); DBCollection collection = db.getCollection("employees"); BasicDBObject employee = new BasicDBObject(); employee.put("name", "Hannah"); employee.put("no", 2); collection.insert(employee); BasicDBObject searchEmployee = new BasicDBObject(); searchEmployee.put("no", 2); DBCursor cursor = collection.find(searchEmployee); while (cursor.hasNext()) { System.out.println(cursor.next()); } System.out.println("The Search Query has Executed!"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } } 結果如下:{ "_id" : { "$oid" : "4fec74dc907cbe9445fd2d70"} , "name" : "Hannah" , "no" : 2} The Search Query has Executed! 小結:隨著互聯網Web2.0網站的興起,非關系型的資料庫現在成了一個極其熱門的新領域,非關系資料庫產品的發展也非常迅速。本文淺顯的談及了如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作的問題。如果您是這方面的專家不妨與我們分享下。

4. java鏈接mongo資料庫需要引什麼jar包

  1. 需要的jar

mongo-java-driver

maven倉庫裡面,mongodb3.0的連接驅動
<!--MongoDB資料庫連接驅動-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.0</version>
</dependency>

2.連接過程代碼


importorg.bson.Document;

importcom.mongodb.MongoClient;
importcom.mongodb.client.MongoCollection;
importcom.mongodb.client.MongoDatabase;

/**
*2016年8月5日下午3:19:44
*
*@author3306TODO測試Mongo資料庫連接
*
*/
publicclassTestMongo{

;

privatestaticStringhost="192.168.0.149";//mongo資料庫伺服器地址,本地為127.0.0.1
privatestaticintport=20000;//mongo默認為27017埠

/**
*獲取資料庫集合
*
*@paramdatabaseName
*資料庫名稱
*@paramcollectionName
*集合名稱
*@returnMongoCollection<Document>
*/
publicstaticMongoCollection<Document>getMongoCollection(StringdatabaseName,StringcollectionName){
returngetMongoDatabase(databaseName).getCollection(collectionName);
}

/**
*獲取mongo資料庫
*
*@paramdatabaseName
*資料庫名稱
*@returnMongoDatabase
*/
(StringdatabaseName){
mongoClient=newMongoClient(host,port);
returnmongoClient.getDatabase(databaseName);
}

/**
*測試數據連接
*
*@paramargs
*/
publicstaticvoidmain(String[]args){

StringdatabaseName="mojing";//資料庫
StringcollectionName="user";//集合名稱

MongoCollection<Document>userCollection=getMongoCollection(databaseName,collectionName);

System.out.println(userCollection.count());
}

}

5. 如何配置MongoDB的Java驅動程序MongoOptions在生產中使用

Java代碼 收藏代碼
// 構造方法
// replicaSetSeeds 所有 Server 的地址
// options 默認的查詢設置

public Mongo( List<ServerAddress> replicaSetSeeds , MongoOptions options )
throws MongoException {
// 設置類變數
_addr = null;
_addrs = replicaSetSeeds;
_options = options;

// 應用查詢設置
_applyMongoOptions();
// 創建 TCP 連接實例
_connector = new DBTCPConnector( this , _addrs );

// 啟動數據清理線程
_cleaner = new DBCleanerThread();
_cleaner.start();
}

// 應用查詢設置
void _applyMongoOptions() {
// 是否在 Slave Server 上執行查詢
if (_options.slaveOk) slaveOk();
// 應用默認的寫入設置
setWriteConcern( _options.getWriteConcern() );
}

// 應用默認的寫入設置
public void setWriteConcern( WriteConcern concern ){
_concern = concern;
}

涉及的其他類:
ServerAddress 用於保存主機名和所使用的埠的信息
MongoOptions 用於保存查詢設置(是否在 Slave 上進行查詢,超時設置等)
WriteConcern 寫入參數設置,包括:Server 數量,寫入超時設置,是否立即將結果同步到文件系統中
DBTCPConnector 表示 TCP 數據連接,後續文章中將詳細介紹。
DBCleanerThread 清理線程,每隔一段時間清理各個DB 的 DBCursor

獲取所有資料庫的名稱

實現如下:
Java代碼 收藏代碼
// 獲取所有資料庫的名稱
public List<String> getDatabaseNames()
throws MongoException {
// 創建表示資料庫命令的 DBOBject
BasicDBObject cmd = new BasicDBObject();
cmd.put("listDatabases", 1);

// 使用 admin 資料庫執行命令並返回結果
CommandResult res = getDB( "admin" ).command(cmd, getOptions());
// 有錯誤的情況下拋出異常
res.throwOnError();

// 獲取結果中的 databases 屬性,即資料庫列表
List l = (List)res.get("databases");

// 遍歷 databases,將名稱保存到一個 list 中,並返回結果
List<String> list = new ArrayList<String>();

for (Object o : l) {
list.add(((BasicDBObject)o).getString("name"));
}
return list;
}

涉及的其他類:
BasicDBObject 與 MongoDB 交互時使用的數據結構,實際相當於 Java 中的 Map,或 JavaScript 中的 object
CommandResult 操作執行的結果,繼承 BasicDBObject,提供一些便捷的方法,實際仍然是在 DBObject 中查詢相應的屬性。

6. 有沒有大神 java連接mongodb遇到了問題

新版本的戚知皮mongodb的驅動包是依賴bson.jar和mongodb_driver_core.jar的 官網上有提示:
Note: mongodb-driver requires the following dependencies: bson and mongodb-driver-core

去看高差一下 ,然後對應的地方有兩個包的下載,猛納導進你的方法就ok了

下載地址:

MongoDB-driver-3.0.1.jar
mongodb-driver-core-3.0.1.jar
bson-3.0.1.jar
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/

https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.1/

7. mongodb的java驅動如何在distinct後count,只獲得結果的大小

不distinct是可以的:mongoTemplate.getCollection("goods").getStats().get("size");
distinct後沒發現呢,貌似不行吧。

8. 淺談如何用Java操作MongoDB

本文主要講述如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作。 文章內容如下: 第一步:安 NoSQL資料庫因其可擴展性使其變得越來越流行,利用NoSQL資料庫可以給你帶來更多的好處,MongoDB是一個用C++編寫的可度可擴展性的開源NoSQL資料庫。本文主要講述如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作。 文章內容如下: 第一步:安裝MongoDB 無需太多的繁雜步驟,你只要在MongoDB官方網站查看安裝說明,根據自己的操作系統進行選擇適應的版本即可。 第二步:啟動MongoDB伺服器耐帆 這一步也很簡單。運行mongod.exe文件里的bin文件夾(我使用的是Windows OS系統),並啟動MongoDB伺服器。 在默認的情況下伺服器將啟動埠27017,你需要在安裝過程中創建將數據存儲在/data/db目錄里。 第三步:啟動MongoDB shell指令 你可以通過運行mongo.exe文件來啟動MongoBD shell。 第四步:利用MongoDB創建資料庫 利用MongoDB在MongoDB shell中輸入以下內容建立一個名為「company」的資料庫。 雙擊代碼全選 1<ol class="dp-xml"style="margin:0px 0px 1em 20px;padding:5px 0px;list-style-position:initial;list-style-image:initial;border-style:none none none solid;border-left-width:3px;border-left-color:#146b00;color:#5c5c5c;font-size:14px;"><li><漏畝罩p>use company </p></li></ol> 記住,除非你在MangoDB里保存了一些東西,否則它不會自動為你保存。 使用下面的命令幫你查看可用的資料庫,它會顯示「company」尚未被創建。 雙擊代碼全選 1<ol class="dp-xml"style="margin:0px 0px 1em 20px;padding:5px 0px;list-style-position:initial;list-style-image:initial;border-style:none none none solid;border-left-width:3px;border-left-color:#146b00;color:#5c5c5c;font-size:14px;"><li><p>show dbs; </p></li></ol> 第五步:在MongoDB中保存數據 使用下面的命令來保存employee 數據代表一個collection,將其命名為employees。 雙擊代碼全選 1<ol class="dp-xml"style="margin:0px 0px 1em 20px;padding:5px 0px;list-style-position:initial;list-style-image:initial;border-style:none none none solid;border-left-width:3px;border-left-color:#146b00;color:#5c5c5c;font-size:14px;"><li><p>employee = {name : "A", no : 1} </p></li><li><p>db.employees.save(employee) </p></li></ol> 通過使用下面的命令來查看collection里的數據。 雙擊代碼全選 1<ol class="dp-xml"style="margin:0px 0px 1em 20px;padding:5px 0px;list-style-position:initial;list-style-image:initial;border-style:none none none solid;border-left-width:3px;border-left-color:#146b00;color:#5c5c5c;font-size:14px;"><li><p>db.users.find(); </p><返鬧/li></ol> 如何使用Java操作MongoDB? 下面是是一段簡單的Java代碼,你可以在這里獲得mongo-java驅動。很簡單,只需要使用下面的代碼,重復上面的操作即可。 雙擊代碼全選 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49packagecom.eviac.blog.mongo; importjava.net.UnknownHostException; importcom.mongodb.BasicDBObject; importcom.mongodb.DB; importcom.mongodb.DBCollection; importcom.mongodb.DBCursor; importcom.mongodb.Mongo; importcom.mongodb.MongoException; publicclassMongoDBClient { publicstaticvoidmain(String[] args) { try{ Mongo mongo = newMongo("localhost", 27017); DB db = mongo.getDB("company"); DBCollection collection = db.getCollection("employees"); BasicDBObject employee = newBasicDBObject(); employee.put("name", "Hannah"); employee.put("no", 2); collection.insert(employee); BasicDBObject searchEmployee = newBasicDBObject(); searchEmployee.put("no", 2); DBCursor cursor = collection.find(searchEmployee); while(cursor.hasNext()) { System.out.println(cursor.next()); } System.out.println("The Search Query has Executed!"); } catch(UnknownHostException e) { e.printStackTrace(); } catch(MongoException e) { e.printStackTrace(); } } } 結果如下:

9. Mongodb的java driver中的Mongo和MongoClient有什麼區別

「MongoClient加入到Java驅動程序在2.10作為MongoDB的默認連接類

其實吵大耐並沒有什麼區別

不過有時候Mongo 運行得比 MongoClient要快
你可以試一下這個代碼,放入1m的文檔。Mongo大概用20秒左右,MongoClient要用180秒左右仿培。
<?php

function mongo_connect($db, $collection) {
$mongo = new Mongo( 'mongodb://localhost' );
return $mongo->$db->$collection;

}

$mongodb='notificator1';
$mongocollection='tok';
$collection= mongo_connect($mongodb, $mongocollection);

echo $time = microtime(true). "\n"升春;

$i=0;
while ( $i < 1000000 ) {
$row = Array('title' => "test #$i");
$collection->save($row);
++$i;
}

echo microtime(true) - $time;

?>

替換 mongo_connect:
function mongo_connect($db, $collection) {
$m = new MongoClient('mongodb://localhost:27017');
$db = $m->selectDB($db);
return $collection = new MongoCollection($db, $collection);
}

閱讀全文

與mongodb驅動Java相關的資料

熱點內容
歐姆龍plc編程第36講 瀏覽:907
我的世界如何將一個伺服器弄崩 瀏覽:6
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465
長方形拉伸的命令 瀏覽:279
python代碼函數編程技術 瀏覽:194
java正則式 瀏覽:429
外包程序員好進嗎 瀏覽:384
雲伺服器服務模型架構 瀏覽:901
刪文件夾什麼指令 瀏覽:509
極速抖音已加密怎麼辦 瀏覽:603
matlab拉格朗日演算法框圖 瀏覽:430
華為公司計算機視覺演算法顧問 瀏覽:254
夏老師講的單片機 瀏覽:298
在編程中如何將圖片放大 瀏覽:163
appstore怎麼看是否付費 瀏覽:603
程序員和碩士 瀏覽:951