MongoDB是一个开源的分布式文档数据库,它能够存储大量的非结构化数据,并且在访问这些数据时具有高效的性能。与传统关系型数据库不同的是,MongoDB采用文档存储方式,文档是一组键值对的数据,数据结构不需要严格的预定义。MongoDB中的类似于关系型数据库中的表,但是MongoDB中的文档可以有不同的结构,这使得MongoDB能够应对更为复杂的数据模型。其中,是MongoDB的一大特色。
创新互联专注于企业成都全网营销、网站重做改版、桑植网站定制设计、自适应品牌网站建设、成都h5网站建设、商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为桑植等各大城市提供网站开发制作服务。
MongoDB中的多个数据库
在MongoDB中,可以创建多个数据库,每个数据库由不同的组成。每个MongoDB服务器都可以支持多个数据库,这也是MongoDB的优势之一。MongoDB数据库采用名称空间的方式存储数据,名称空间包括数据库名和名,例如,”数据库名.名”的方式来描述一个文档的位置。
MongoDB支持在同一个服务器上创建多个独立的数据库,这些数据库之间是独立的,可以互相独立,互不干扰。在每个数据库中,可以定义多个,在不同的中存储不同的数据。这种灵活的架构方式,使得MongoDB能够灵活应对不同的数据需求。
MongoDB多个数据库的优点
的好处有很多。可以将业务数据和访问频次不同的数据分别存储在不同的数据库中,便于对数据的管理和维护。各个数据库之间的数据是相互独立的,互不干扰,也提高了数据的安全性和可靠性。另外,在需要扩展数据时,可以选择不同的数据库,从而将不同的数据存储在不同的服务器中,提高了系统的性能和可扩展性。
MongoDB多个数据库的操作
MongoDB中的多个数据库可以通过以下两种方式进行操作:
1. 使用命令行操作
可以在命令行中使用“use”命令来选择数据库,例如:
“`
> use demo1
switched to db demo1
“`
这个命令会在服务器上创建一个名为”demo1″的数据库,并将其作为当前默认的数据库。
2. 使用客户端操作
可以使用MongoDB提供的客户端工具来管理MongoDB中的多个数据库。例如,使用MongoDB的官方客户端工具“mongo”连接MongoDB,然后选择数据库,如下所示:
“`
> mongo
MongoDB shell version v4.2.8
…
> use demo1
switched to db demo1
“`
在之前,需要明确一点,多个数据库虽然能够提高数据的管理和维护的效率,但也会增加一定的开销和复杂度。在设计多个数据库时,需要根据业务的实际情况和数据的特点综合考虑。例如,可以将频繁访问的数据放在同一个数据库中,而将访问频次较低的数据分散到多个数据库中,这样可以提高数据的访问速度和系统的扩展性。同时,还需要对多个数据库中的数据进行定期的备份和维护,保证数据的安全和可靠性。
是MongoDB的一大特色,它使得MongoDB能够更加灵活、高效地应对不同的数据场景和业务需求。在使用MongoDB时,我们应该充分利用这种特性,将数据分别存储在不同的数据库中,从而提高系统的性能和可靠性。
成都网站建设公司-创新互联为您提供网站建设、网站制作、网页设计及定制高端网站建设服务!
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 {
//创建连接
Mongo m=new Mongo(“127.0.0.1”, 27017);
//得到数据库
DB db=m.getDB(“test”);
//得到所有数据库
//List colls=m.getDatabaseNames();
//for(String str:colls){
//System.out.println(str);
//}
////得到所有的(表)
//for(String collection:db.getCollectionNames()){
//System.out.println(collection);
//}
//删除一个数据库
//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);
//如果数据库不存在就添加 |多条修改 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则所有的都会更新
//根据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);
//更新
//根据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());
////查询部分数据块
//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();
}
}
}
一、优点:
1、支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set()、zset(排序set)、hyperloglog(基数估算)
2、支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。
3、支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制,master-slave机制是Redis进行HA的重要手段。
二、缺点:
1、Redis只能使用单线程,性能受限于CPU性能,故单实例CPU更高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)。
2、支持简单的事务需求,但业界使用场景很少,并不成熟,既是优点也是缺点。
3、Redis在string类型上会消耗较多内存,可以使用dict(hash表)压缩存储以降低内存耗用。
扩展资料:
redis使用注意事项:
1、注意垃圾回收:Redis是一个提供持久化功能的内存数据库,如果不指定上面值的过期时间,并且也不进行定期的清理工作,那么Redis内存占用会越来越大,当有一天超过了系统可用内存,那么swap上场,离性能陡降的时间就不远了。
2、使用key值前缀来作命名空间:虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。
3、Redis并不支持Sharding,但是当数据量超过单机内存时,不得不考虑Sharding的事(注意Slave不是用来做Sharding操作的,只是数据的一个备份和读写分离而已)。
参考资料来源:
百度百科-Redis
参考资料来源:
百度百科-mongodb
关于mongodb 多个数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
香港服务器选创新互联,香港虚拟主机被称为香港虚拟空间/香港网站空间,或者简称香港主机/香港空间。香港虚拟主机特点是免备案空间开通就用, 创新互联香港主机精选cn2+bgp线路访问快、稳定!
本文名称:MongoDB实现多个数据库管理(mongodb多个数据库)
转载注明:http://www.shufengxianlan.com/qtweb/news45/80245.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联