MongoDB 使用json存储数据.
package com.ys;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
/**
* @author yansheng
*
*/
public class HelloMongo {
public static void main(String[] args) throws UnknownHostException,
MongoException {
// 1.连接Mongo
Mongo conn = new Mongo("localhost");
// Mongo conn = new Mongo("localhost", 27017);
// Mongo conn = new Mongo("localhost", "mydb");
// Mongo conn = new Mongo("localhost", 27017, "mydb");
// 2.遍历数据库
List<String> dbList = conn.getDatabaseNames();
for (String s : dbList) {
System.out.println(s);
}
// 3.获得db,遍历集合列表
DB db = conn.getDB("admin");
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
}
// 登录db
boolean auth = db.authenticate("user", "password".toCharArray());
// 4.获得一个集合,如果COLLECTION不存在,则MongoDB会自动为你创建此collection
DBCollection coll = db.getCollection("testCollection");
// 5.插入数据
BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);
DBObject info = new BasicDBObject();
info.put("x", 203);
info.put("y", 102);
doc.put("info", info);
coll.insert(doc);
// 6.使用findOne()查找集合中第一个文档
/*
* 注意_id和_ns元素是由MongoDB自动加入你的文档。 记住:MongoDB内部存储使用的元素名是以“_”做为开始。
*/
DBObject myDoc = coll.findOne();
System.out.println(myDoc);
// 7.统计文档数量
System.out.println(coll.getCount());
// 8.使用光标(cursor)来获取全部文档
DBCursor cur = coll.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}
// 9.在查询中获取单一文档
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cur = coll.find(query);
while (cur.hasNext()) {
System.out.println(cur.next());
}
// 10.使用条件查询获取集合
// 例如,我们想要查询所有i>50的文档:
BasicDBObject query_1 = new BasicDBObject();
query_1.put("i", new BasicDBObject("$gt", 50));
cur = coll.find(query_1);
while (cur.hasNext()) {
System.out.println(cur.next());
}
// 做20 < i <= 30的查询
BasicDBObject query_2 = new BasicDBObject();
query_2.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));
cur = coll.find(query_2);
while (cur.hasNext()) {
System.out.println(cur.next());
}
// 11.创建索引,指定升序(1)或降序(-1)
coll.createIndex(new BasicDBObject("i", 1));
// 12.获取索引列表
List<DBObject> list = coll.getIndexInfo();
for (DBObject o : list) {
System.out.println(o);
}
// 13.MongoDB管理函数
// 例A:获取数据库列表
// MongoAdmin admin = new MongoAdmin();
// for(String s : admin.getDatabaseNames()){
// System.out.println(s);
// }
//
// 例B:获取数据库对象
// Mongo m = admin.getDB("mydb");
//
// 例C:删除数据库
// admin.dropDatabase("mydb");
//13.用DBObject存储JAVA对象
// 例如,存在一个需要存储的对象类Tweet
Tweet myTweet_1 = new Tweet();
myTweet_1.put("user", 001);
myTweet_1.put("message", "message");
myTweet_1.put("date", new Date());
coll.insert(myTweet_1);
// 当一个文档从MongoDB中取出时,它会自动把文档转换成DBObject接口类型,要将它实例化为你的对象
coll.setObjectClass(Tweet.class);
Tweet myTweet_2 = (Tweet)coll.findOne();
// 14.JAVA驱动的并发性
db.requestStart();
// code.........
db.requestDone();
}
}