MongoDB 基础java数据类型

mongodb的java数据类型有
Object Ids 自动ID
Regular Expressions 正则表达式搜索记录
Dates/Times 时间
Database References 数据基础结构
Binary Data 二进制流
Timestamp Data 时间标记戳
Code Data 代码数据
Embedded Documents 嵌入式文档
Arrays 数组类型

详细参考原来英文 http://www.mongodb.org/display/DOCS/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
				
	}

}


首发于月小升博客 - MongoDB 基础java数据类型

posted on 2012-08-26 11:39 月小升 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yuexiaosheng/archive/2012/08/26/2657262.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值