mongodb的java数据类型有:
Object Ids 自动ID
Regular Expressions 正则表达式搜索记录
Dates/Times 时间
Database References 数据基础结构
Binary Data 二进制流
Timestamp Data 时间标记戳
Code Data 代码数据
Embedded Documents 嵌入式文档
Arrays 数组类型
详细参考原来英文 http://docs.mongodb.org/ecosystem/drivers/java-types/
以下测试基础的mongodb数据类型。
package com.javaer.mongo;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
import java.util.regex.Pattern;
import org.bson.types.ObjectId;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.DBRef;
import com.mongodb.Mongo;
public class JavaTypes {
/**
* @param args
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException {
//基础ID,自动增加 结构类似503991d90364b431cdc798e2
ObjectId id = new ObjectId();
System.out.println(id);
id = new ObjectId();
System.out.println(id);
//5039924c0364f4a124555e42
// 5039924c0364f4a124555e43 连续使用,自动增加,否则随机生成
Mongo m = new Mongo();
DB db = m.getDB(\"yuexiaosheng\");
DBCollection coll = db.getCollection(\"mycollection\");
//使用标准库的正则表达式,可以搜索数据里记录。类似mysql中条件 where title like \'%name%\'
Pattern john = Pattern.compile(\".*?jack*.?\",Pattern.CASE_INSENSITIVE);
BasicDBObject query = new BasicDBObject(\"title\", john);
DBCursor cursor = coll.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
//mongodb中的时间类型
Date now = new Date();
BasicDBObject time = new BasicDBObject(\"ts\", now);
coll.save(time);
//插入的记录 { \"_id\" : ObjectId(\"503993b20364129f6625d349\"), \"ts\" : ISODate(\"2012-08-26T03:10:42.146Z\") }
//mongodb中的数组结构。
ArrayList x = new ArrayList();
x.add(1);
x.add(2);
x.add(new BasicDBObject(\"foo\", \"bar\"));
x.add(4);
BasicDBObject doc = new BasicDBObject(\"x\", x);
coll.save(doc);
//插入的记录 { \"_id\" : ObjectId(\"503994500364bf9957b271a6\"), \"x\" : [ 1, 2, { \"foo\" : \"bar\" }, 4 ] }
//存储mongodb的数据结构数据到数据库里
DBRef addressRef = new DBRef(db, \"foo.bar\", id);
DBObject address = addressRef.fetch();
DBObject person = BasicDBObjectBuilder.start()
.add(\"name\", \"Fred\")
.add(\"address\", addressRef)
.get();
coll.save(person);
//插入的数据记录
//{ \"_id\" : ObjectId(\"503995390364fcf1b54905b2\"), \"name\" : \"Fred\", \"address\" : { \"$ref\" : \"foo.bar\", \"$id\" : ObjectId(\"503995390364fcf1b54905af\") } }
DBObject fred = coll.findOne();
DBRef addressObj = (DBRef)fred.get(\"address\");
System.out.println(addressObj);
// { \"$ref\" : \"foo.bar\", \"$id\" : \"5039965c03648efcd6281311
}
}