MongoDB支持的java数据类型和测试例子

 更新时间:2014年05月29日 09:13:34   作者:  
这篇文章主要介绍了MongoDB支持的java数据类型和测试例子,MongoDB除了本身自有的数据类型外,还为较流行的编程语言定制了该语言的数据类型,需要的朋友可以参考下

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

 }

}

相关文章

  • javafx实现时钟效果

    javafx实现时钟效果

    这篇文章主要为大家详细介绍了javafx实现时钟效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 浅析java消息摘要与数字签名

    浅析java消息摘要与数字签名

    这篇文章给大家分析了关于java消息摘要与数字签名的相关知识点内容,有兴趣的朋友们可以学习下。
    2018-08-08
  • Java用正则表达式实现${name}形式的字符串模板实例

    Java用正则表达式实现${name}形式的字符串模板实例

    这篇文章主要给大家介绍了Java如何用正则表达式实现${name}形式的字符串模板,文章给出详细的实例代码,对大家的理解和学习会很有帮助,有需要的朋友们下面来一起看看吧。
    2016-12-12
  • Java语言实现简单FTP软件 FTP软件主界面(4)

    Java语言实现简单FTP软件 FTP软件主界面(4)

    这篇文章主要为大家详细介绍了Java语言实现简单FTP软件,FTP软件主界面编写的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • IntelliJ IDEA下Maven创建Scala项目的方法步骤

    IntelliJ IDEA下Maven创建Scala项目的方法步骤

    这篇文章主要介绍了IntelliJ IDEA下Maven创建Scala项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • java string的一些细节剖析

    java string的一些细节剖析

    首先说明这里指的是Java中String的一些细节部分,需要的朋友可以参考
    2012-11-11
  • java版微信和支付宝退款接口

    java版微信和支付宝退款接口

    这篇文章主要为大家详细介绍了java版微信退款接口和java版支付宝退款接口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • MyBatis绑定错误提示BindingException:Invalid bound statement (not found)的解决方法

    MyBatis绑定错误提示BindingException:Invalid bound statement

    这篇文章主要介绍了MyBatis绑定错误提示BindingException:Invalid bound statement (not found)的解决办法,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-01-01
  • springboot+vue部署按照及运行方法

    springboot+vue部署按照及运行方法

    在本篇文章里小编给大家整理了关于springboot+vue部署按照及运行方法和实例内容,需要的朋友们学习参考下。
    2020-01-01
  • 浅谈cookie和session(小结)

    浅谈cookie和session(小结)

    这篇文章主要介绍了浅谈cookie和session(小结),cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结
    2018-11-11

最新评论