MongoDB支持的java数据类型和测试例子
mongodb的java数据类型有:
ObjectIds自动ID
RegularExpressions正则表达式搜索记录
Dates/Times时间
DatabaseReferences数据基础结构
BinaryData二进制流
TimestampData时间标记戳
CodeData代码数据
EmbeddedDocuments嵌入式文档
Arrays数组类型
详细参考原来英文http://docs.mongodb.org/ecosystem/drivers/java-types/
以下测试基础的mongodb数据类型。
packagecom.javaer.mongo;
importjava.net.UnknownHostException;
importjava.util.ArrayList;
importjava.util.Date;
importjava.util.regex.Pattern;
importorg.bson.types.ObjectId;
importcom.mongodb.BasicDBObject;
importcom.mongodb.BasicDBObjectBuilder;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.DBObject;
importcom.mongodb.DBRef;
importcom.mongodb.Mongo;
publicclassJavaTypes{
/**
*@paramargs
*@throwsUnknownHostException
*/
publicstaticvoidmain(String[]args)throwsUnknownHostException{
//基础ID,自动增加 结构类似503991d90364b431cdc798e2
ObjectIdid=newObjectId();
System.out.println(id);
id=newObjectId();
System.out.println(id);
//5039924c0364f4a124555e42
//5039924c0364f4a124555e43 连续使用,自动增加,否则随机生成
Mongom=newMongo();
DBdb=m.getDB("yuexiaosheng");
DBCollectioncoll=db.getCollection("mycollection");
//使用标准库的正则表达式,可以搜索数据里记录。类似mysql中条件wheretitlelike'%name%'
Patternjohn=Pattern.compile(".*?jack*.?",Pattern.CASE_INSENSITIVE);
BasicDBObjectquery=newBasicDBObject("title",john);
DBCursorcursor=coll.find(query);
try{
while(cursor.hasNext()){
System.out.println(cursor.next());
}
}finally{
cursor.close();
}
//mongodb中的时间类型
Datenow=newDate();
BasicDBObjecttime=newBasicDBObject("ts",now);
coll.save(time);
//插入的记录{"_id":ObjectId("503993b20364129f6625d349"),"ts":ISODate("2012-08-26T03:10:42.146Z")}
//mongodb中的数组结构。
ArrayListx=newArrayList();
x.add(1);
x.add(2);
x.add(newBasicDBObject("foo","bar"));
x.add(4);
BasicDBObjectdoc=newBasicDBObject("x",x);
coll.save(doc);
//插入的记录 {"_id":ObjectId("503994500364bf9957b271a6"),"x":[1,2,{"foo":"bar"},4]}
//存储mongodb的数据结构数据到数据库里
DBRefaddressRef=newDBRef(db,"foo.bar",id);
DBObjectaddress=addressRef.fetch();
DBObjectperson=BasicDBObjectBuilder.start()
.add("name","Fred")
.add("address",addressRef)
.get();
coll.save(person);
//插入的数据记录
//{"_id":ObjectId("503995390364fcf1b54905b2"),"name":"Fred","address":{"$ref":"foo.bar","$id":ObjectId("503995390364fcf1b54905af")}}
DBObjectfred=coll.findOne();
DBRefaddressObj=(DBRef)fred.get("address");
System.out.println(addressObj);
//{"$ref":"foo.bar","$id":"5039965c03648efcd6281311
}
}