Java操作MongoDB
程序员文章站
2022-07-11 22:32:03
...
1.首先介绍一下比较常用的几个类
Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB:对应一个数据库,可以用来建立集合等操作
DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObjec:接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
2.建立连接
Mongo db = new Mongo("mydb");
Mongo db = new Mongo("localhost", "mydb");
Mongo db = new Mongo("localhost", 27017, "mydb");
3.安全验证(输入用户名和密码)
boolean auth = db.authenticate(userName, password);
4.获取集合列表(数据表)
Set colls = db.getCollectionNames();
5.获得一个集合
DBCollection coll = db.getCollection("testCollection");
6.插入文档(记录)
BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);
coll.insert(doc);
7.使用findOne()查找集合中第一个文档
DBObject myDoc = coll.findOne();
8.统计记录数量
coll.getCount();
9.使用光标(cursor)来获取全部文档
DBCursor cur = coll.find();
10.查询单一文档
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cur = coll.find(query);
11.创建索引
MongoDB支持索引,而且很容易在集合上增加索引。要创建索引,只需要指定要加索引的属性,并且指定升序(1)或降序即可(-1)。
coll.createIndex(new BasicDBObject("i", 1));
12.获取索引
List list = coll.getIndexInfo();
13.MongoDB管理函数
管理函数在com.mongodb.MongoAdmin类中定义。
MongoAdmin admin = new MongoAdmin();
例A:获取数据库列表
admin.getDatabaseNames())
例B:获取数据库对象
Mongo m = admin.getDB("mydb");
例C:删除数据库
admin.dropDatabase("mydb")
14.用DBObject存储JAVA对象
需要实现DBObject接口
public class Tweet implements DBObject{}
当一个文档从MongoDB中取出时,它会自动把文档转换成DBObject接口类型,要将它实例化为你的对象,需使用DBCollection.setObjectClass()。
例:
collection.setObjectClass(Tweet);
Tweet myTweet = (Tweet)collection.findOne();
15.JAVA驱动的并发性
如果你需要在一个会话(例如HTTP请求)中保证事务一致性,也许你会希望在这个会话中对驱动使用同一个端口。这仅仅在
请求量非常大的环境中,例如你经常会读取刚写入的数据。
为了这一点,你需要使用如下代码:
DB db = null;
db.requestStart();
// code.........
db.requestDone();
Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB:对应一个数据库,可以用来建立集合等操作
DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObjec:接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
2.建立连接
Mongo db = new Mongo("mydb");
Mongo db = new Mongo("localhost", "mydb");
Mongo db = new Mongo("localhost", 27017, "mydb");
3.安全验证(输入用户名和密码)
boolean auth = db.authenticate(userName, password);
4.获取集合列表(数据表)
Set colls = db.getCollectionNames();
5.获得一个集合
DBCollection coll = db.getCollection("testCollection");
6.插入文档(记录)
BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);
coll.insert(doc);
7.使用findOne()查找集合中第一个文档
DBObject myDoc = coll.findOne();
8.统计记录数量
coll.getCount();
9.使用光标(cursor)来获取全部文档
DBCursor cur = coll.find();
10.查询单一文档
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cur = coll.find(query);
11.创建索引
MongoDB支持索引,而且很容易在集合上增加索引。要创建索引,只需要指定要加索引的属性,并且指定升序(1)或降序即可(-1)。
coll.createIndex(new BasicDBObject("i", 1));
12.获取索引
List list = coll.getIndexInfo();
13.MongoDB管理函数
管理函数在com.mongodb.MongoAdmin类中定义。
MongoAdmin admin = new MongoAdmin();
例A:获取数据库列表
admin.getDatabaseNames())
例B:获取数据库对象
Mongo m = admin.getDB("mydb");
例C:删除数据库
admin.dropDatabase("mydb")
14.用DBObject存储JAVA对象
需要实现DBObject接口
public class Tweet implements DBObject{}
当一个文档从MongoDB中取出时,它会自动把文档转换成DBObject接口类型,要将它实例化为你的对象,需使用DBCollection.setObjectClass()。
例:
collection.setObjectClass(Tweet);
Tweet myTweet = (Tweet)collection.findOne();
15.JAVA驱动的并发性
如果你需要在一个会话(例如HTTP请求)中保证事务一致性,也许你会希望在这个会话中对驱动使用同一个端口。这仅仅在
请求量非常大的环境中,例如你经常会读取刚写入的数据。
为了这一点,你需要使用如下代码:
DB db = null;
db.requestStart();
// code.........
db.requestDone();