MongoDB在java中的操作实例

Java与mongodb的连接

1.1 连单台mongodb

Mongo mg = new Mongo();//默认连本机127.0.0.1  端口为27017

Mongo mg = new Mongo(ip);//可以指定ip 端口默认为27017

Mongo mg = new Mongo(ip,port);//也可以指定ip及端口号

 

1.2 连双台mongodb

//ip为主机ip地址,port为端口号,dataBaseName相当于数据库名

DBAddress left = new DBAddress("ip:port/dataBaseName");

 DBAddress right = new DBAddress("ip:port/dataBaseName ");

//若一个mongodb出现问题,会自动连另外一台

Mongo mongo = new Mongo(left, right);

 

1.3 连多台mongodb

List<ServerAddress> mongoHostList = new ArrayList<ServerAddress>();

mongoHostList.add(new ServerAddress("ip",port));

mongoHostList.add(new ServerAddress("ip",port));

mongoHostList.add(new ServerAddress("ip",port));

Mongo mg = new Mongo(mongoHostList);

 

Java获取mongodb的数据库名

2.1 获取mongodb的db(数据库)

//dataBaseName相当于关系数据库里的数据库名,mongodb中若没有该

//数据库名也不会报错,默认mongodb会建立这个数据库名,为空。

DB db = mg.getDB(dataBaseName);

 

注意:mongodb区分大小写,程序中一定要注意

 

2.2 mongodb的db安全认证

//如果mongodb服务器运行时加了用户名及密码安全认证 如下图



 

 

若这个时候要想访问db中的collection(相当于关系数据库里的表),就必须通过安全认证才可以访问,否则后台会报您没有通过安全认证。

 

//安全认证java代码 返回true表示通过,false表示没通过不能进行操作

db.authenticate("userName", "password".toCharArray());

if(db.authenticate("admin", "123".toCharArray())){

System.out.println("连接mongodb成功...");

} else{

System.out.println("连接mongodb失败...");

}

 

Java对mongodb的collection进行crud操作

3.1 得到mongodb中的db的collection(表)

//参数tableName相当于关系数据库里的表名,

//若mongodb中没有该tableName,默认会创建该tableName,为空 

DBCollection users = db.getCollection(tableName);

 

2.列出库的集合列表,相对于表对象

Set<String> colls = db.getCollectionNames();

for(String s : colls){

}

 

// 3.获取单个集合

DBCollection con = db.getCollection("users");

 

3.2 mongodb中的db的collection自增长主键

   Mongodb中也像传统的关系数据库里表一样,有主键(_id)概念,用来唯一标识他们。当用户往collection中插入一条新记录的时候,如果没有指定_id属性,那么mongodb会自动生成一个ObjectId类型的值,保存为_id的值。

   _id的值可以为任何类型,除了数组,在实际应用中,鼓励用户自己定义_id值,但是要保证他的唯一性。

传统的数据库中,通常用一个递增的序列来提供主键,在Mongodb中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值