新聞中心
MongoDB是一個開源的分布式文檔數(shù)據(jù)庫,它能夠存儲大量的非結(jié)構(gòu)化數(shù)據(jù),并且在訪問這些數(shù)據(jù)時具有高效的性能。與傳統(tǒng)關(guān)系型數(shù)據(jù)庫不同的是,MongoDB采用文檔存儲方式,文檔是一組鍵值對的數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)不需要嚴(yán)格的預(yù)定義。MongoDB中的類似于關(guān)系型數(shù)據(jù)庫中的表,但是MongoDB中的文檔可以有不同的結(jié)構(gòu),這使得MongoDB能夠應(yīng)對更為復(fù)雜的數(shù)據(jù)模型。其中,是MongoDB的一大特色。

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、桑植網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為桑植等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
MongoDB中的多個數(shù)據(jù)庫
在MongoDB中,可以創(chuàng)建多個數(shù)據(jù)庫,每個數(shù)據(jù)庫由不同的組成。每個MongoDB服務(wù)器都可以支持多個數(shù)據(jù)庫,這也是MongoDB的優(yōu)勢之一。MongoDB數(shù)據(jù)庫采用名稱空間的方式存儲數(shù)據(jù),名稱空間包括數(shù)據(jù)庫名和名,例如,”數(shù)據(jù)庫名.名”的方式來描述一個文檔的位置。
MongoDB支持在同一個服務(wù)器上創(chuàng)建多個獨立的數(shù)據(jù)庫,這些數(shù)據(jù)庫之間是獨立的,可以互相獨立,互不干擾。在每個數(shù)據(jù)庫中,可以定義多個,在不同的中存儲不同的數(shù)據(jù)。這種靈活的架構(gòu)方式,使得MongoDB能夠靈活應(yīng)對不同的數(shù)據(jù)需求。
MongoDB多個數(shù)據(jù)庫的優(yōu)點
的好處有很多??梢詫I(yè)務(wù)數(shù)據(jù)和訪問頻次不同的數(shù)據(jù)分別存儲在不同的數(shù)據(jù)庫中,便于對數(shù)據(jù)的管理和維護。各個數(shù)據(jù)庫之間的數(shù)據(jù)是相互獨立的,互不干擾,也提高了數(shù)據(jù)的安全性和可靠性。另外,在需要擴展數(shù)據(jù)時,可以選擇不同的數(shù)據(jù)庫,從而將不同的數(shù)據(jù)存儲在不同的服務(wù)器中,提高了系統(tǒng)的性能和可擴展性。
MongoDB多個數(shù)據(jù)庫的操作
MongoDB中的多個數(shù)據(jù)庫可以通過以下兩種方式進行操作:
1. 使用命令行操作
可以在命令行中使用“use”命令來選擇數(shù)據(jù)庫,例如:
“`
> use demo1
switched to db demo1
“`
這個命令會在服務(wù)器上創(chuàng)建一個名為”demo1″的數(shù)據(jù)庫,并將其作為當(dāng)前默認的數(shù)據(jù)庫。
2. 使用客戶端操作
可以使用MongoDB提供的客戶端工具來管理MongoDB中的多個數(shù)據(jù)庫。例如,使用MongoDB的官方客戶端工具“mongo”連接MongoDB,然后選擇數(shù)據(jù)庫,如下所示:
“`
> mongo
MongoDB shell version v4.2.8
…
> use demo1
switched to db demo1
“`
在之前,需要明確一點,多個數(shù)據(jù)庫雖然能夠提高數(shù)據(jù)的管理和維護的效率,但也會增加一定的開銷和復(fù)雜度。在設(shè)計多個數(shù)據(jù)庫時,需要根據(jù)業(yè)務(wù)的實際情況和數(shù)據(jù)的特點綜合考慮。例如,可以將頻繁訪問的數(shù)據(jù)放在同一個數(shù)據(jù)庫中,而將訪問頻次較低的數(shù)據(jù)分散到多個數(shù)據(jù)庫中,這樣可以提高數(shù)據(jù)的訪問速度和系統(tǒng)的擴展性。同時,還需要對多個數(shù)據(jù)庫中的數(shù)據(jù)進行定期的備份和維護,保證數(shù)據(jù)的安全和可靠性。
是MongoDB的一大特色,它使得MongoDB能夠更加靈活、高效地應(yīng)對不同的數(shù)據(jù)場景和業(yè)務(wù)需求。在使用MongoDB時,我們應(yīng)該充分利用這種特性,將數(shù)據(jù)分別存儲在不同的數(shù)據(jù)庫中,從而提高系統(tǒng)的性能和可靠性。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!
高手幫幫忙,我剛接觸mongodb,怎么用java對mongodb數(shù)據(jù)庫進行多條件查詢,先謝謝了
package maven.demo.test;
import java.util.ArrayList;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.QueryOperators;
public class MongoDB {
private static void print(String str){
System.out.println(str);
}
public static void main(String args) {
try {
//創(chuàng)建連接
Mongo m=new Mongo(“127.0.0.1”, 27017);
//得到數(shù)據(jù)庫
DB db=m.getDB(“test”);
//得到所有數(shù)據(jù)庫
//List colls=m.getDatabaseNames();
//for(String str:colls){
//System.out.println(str);
//}
////得到所有的(表)
//for(String collection:db.getCollectionNames()){
//System.out.println(collection);
//}
//刪除一個數(shù)據(jù)庫
//m.dropDatabase(“sun”);
//得到sun表
DBCollection coll=db.getCollection(“things”);
//查看一個表的索引
//for(DBObject index:coll.getIndexInfo()){
//System.out.println(index);
//}
//DBObject myDoc=coll.findOne();
//System.out.println(myDoc);
//添加
//BasicDBObject doc=new BasicDBObject();
//doc.put(“name”, “sunshan”);
//doc.put(“sex”, “男”);
//doc.put(“age”, 22);
//coll.insert(doc);
//刪除
//coll.remove(doc);
//BasicDBObject doc1=new BasicDBObject();
//doc1.put(“i”, 0);
//doc1.put(“j”, “foo”);
//BasicDBObject doc2=new BasicDBObject();
//doc2.put(“hello”, “world”);
//doc1.put(“doc2”, doc2);
//coll.insert(doc1);
//修改
//BasicDBObject doc3=new BasicDBObject();
//doc3.put(“x”, 6);
//BasicDBObject doc4=new BasicDBObject();
//doc4.put(“x”, 1);
//coll.update(doc3, doc4,true,false);
//如果數(shù)據(jù)庫不存在就添加 |多條修改 false只修改之一天,true如果有多條就不修改
//條件查詢
//System.out.println(coll.find(doc4));
//coll.findAndRemove(doc4);
////批量插入
//List datas=new ArrayList();
//for(int i=0;i map=new HashMap();
//map.put(“a”, 1);
//map.put(“b”, “b”);
//coll.insert(new BasicDBObject(map));
//添加
//String json =”{‘1’ : ‘1’,’2′ : ‘2’,”+”’11’ : {‘1’ : 1, ‘2’ : ‘2’, ‘3’ : ‘3’}}”;
//DBObject dbobject=(DBObject)ON.parse(json);
//coll.insert(dbobject);
//更新
//BasicDBObject bdo=new BasicDBObject();
//bdo.put(“x”, 11);
//coll.update(new BasicDBObject().append(“x”, 0), bdo);
//更新
//BasicDBObject bdo=new BasicDBObject().append(“$inc”, new BasicDBObject().append(“x”, 12));
//coll.update(new BasicDBObject().append(“x”, 11), bdo);
//更新
//如果不使用$set 直接是 age則所有的都會更新
//根據(jù)age為9條件把name:data修改為 name:sun
//BasicDBObject bdo=new BasicDBObject().append(“$set”, new BasicDBObject().append(“name”, “sunshan”));
//coll.update(new BasicDBObject().append(“age”, 9), bdo);
//更新
//根據(jù)name為data條件把age:批量修改為 age:age
//BasicDBObject bdo=new BasicDBObject().append(“$set”, new BasicDBObject().append(“age”, “age”));
//coll.update(new BasicDBObject().append(“name”, “data”), bdo,false, true);
//查詢age=1
//print(“find:”+coll.find(new BasicDBObject(“age”, 1)).toArray());
//查詢age=1
//print(“fint: “+coll.find(new BasicDBObject(“age”, new BasicDBObject(“$gte”, 1))).toArray());
//查詢age!=1
//print(“fint: “+coll.find(new BasicDBObject(“age”, new BasicDBObject(“$ne”, 1))).toArray());
//查詢age=1,2,3
//print(“fint: “+coll.find(new BasicDBObject(“age”, new BasicDBObject(QueryOperators.IN ,new int{1,2,3}))).toArray());
//查詢age!=1,2,3
//print(“find: “+coll.find(new BasicDBObject(“age” ,new BasicDBObject(QueryOperators.NIN ,new int{1,2,3}))).toArray());
//print(“find: “+coll.find(new BasicDBObject(“age” ,new BasicDBObject(QueryOperators.EXISTS ,true))).toArray());
//查詢age屬性
//print(“find: “+coll.find(null ,new BasicDBObject(“age” ,true)).toArray());
//List list=coll.find().toArray();
//for(Object obj:list){
//System.out.println(obj);
//}
//true查詢出來存在的 /false 查詢出來不存在的
//print(“”+coll.find(new BasicDBObject(“y”,new BasicDBObject(QueryOperators.EXISTS,false))).toArray());
//DBObject dbc=new BasicDBObject();
//dbc.put(“name”, 1111);
//List list=new ArrayList();
//list.add(dbc);
//System.out.println(coll.insert(list).getN());
////查詢部分?jǐn)?shù)據(jù)塊
//DBCursor cursor=coll.find().skip(1);
//while(cursor.hasNext()){
//System.out.println(cursor.next());
//}
//DBCursor cur=coll.find(); //DBCursor cur=coll.find().limit(2);
//while(cur.hasNext()){
//System.out.println(cur.next());
//}
//System.out.println(cur.getCursorId()+” “+cur.count()+” “+ON.serialize(cur));
//條件查詢
BasicDBObject doc5=new BasicDBObject();
doc5.put(“$gt”, 1);
doc5.put(“$lt”, 3);
print(“find 21
//BasicDBObject doc5=new BasicDBObject();
//doc5.put(“$gt”, 1);
//doc5.put(“$lt”, 3);
//BasicDBObject doc6=new BasicDBObject();
//doc6.put(“x”, doc5);
//System.out.println(coll.find(doc6));
} catch (Exception e) {
e.printStackTrace();
}
}
}
redis 和 mongodb 比起來優(yōu)缺點是什么?
一、優(yōu)點:
1、支持多種數(shù)據(jù)結(jié)構(gòu),如 string(字符串)、 list(雙向鏈表)、dict(hash表)、set()、zset(排序set)、hyperloglog(基數(shù)估算)
2、支持持久化操作,可以進行aof及rdb數(shù)據(jù)持久化到磁盤,從而進行數(shù)據(jù)備份或數(shù)據(jù)恢復(fù)等操作,較好的防止數(shù)據(jù)丟失的手段。
3、支持通過Replication進行數(shù)據(jù)復(fù)制,通過master-slave機制,可以實時進行數(shù)據(jù)的同步復(fù)制,支持多級復(fù)制和增量復(fù)制,master-slave機制是Redis進行HA的重要手段。
二、缺點:
1、Redis只能使用單線程,性能受限于CPU性能,故單實例CPU更高才可能達到5-6wQPS每秒(取決于數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)大小以及服務(wù)器硬件性能,日常環(huán)境中QPS高峰大約在1-2w左右)。
2、支持簡單的事務(wù)需求,但業(yè)界使用場景很少,并不成熟,既是優(yōu)點也是缺點。
3、Redis在string類型上會消耗較多內(nèi)存,可以使用dict(hash表)壓縮存儲以降低內(nèi)存耗用。
擴展資料:
redis使用注意事項:
1、注意垃圾回收:Redis是一個提供持久化功能的內(nèi)存數(shù)據(jù)庫,如果不指定上面值的過期時間,并且也不進行定期的清理工作,那么Redis內(nèi)存占用會越來越大,當(dāng)有一天超過了系統(tǒng)可用內(nèi)存,那么swap上場,離性能陡降的時間就不遠了。
2、使用key值前綴來作命名空間:雖然說Redis支持多個數(shù)據(jù)庫(默認32個,可以配置更多),但是除了默認的0號庫以外,其它的都需要通過一個額外請求才能使用。所以用前綴作為命名空間可能會更明智一點。
3、Redis并不支持Sharding,但是當(dāng)數(shù)據(jù)量超過單機內(nèi)存時,不得不考慮Sharding的事(注意Slave不是用來做Sharding操作的,只是數(shù)據(jù)的一個備份和讀寫分離而已)。
參考資料來源:
百度百科-Redis
參考資料來源:
百度百科-mongodb
關(guān)于mongodb 多個數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡稱香港主機/香港空間。香港虛擬主機特點是免備案空間開通就用, 創(chuàng)新互聯(lián)香港主機精選cn2+bgp線路訪問快、穩(wěn)定!
分享標(biāo)題:MongoDB實現(xiàn)多個數(shù)據(jù)庫管理(mongodb多個數(shù)據(jù)庫)
標(biāo)題鏈接:http://fisionsoft.com.cn/article/cochocd.html


咨詢
建站咨詢
