zoukankan      html  css  js  c++  java
  • Java 构造 BSON 数据类型

    Java 构造 BSON 数据类型

    • 整数/符浮点数

      Java BSON 构造整数/符浮点数类型
      // {a:123, b:3.14}
      BSONObject obj = new BasicBSONObject();
      obj.put("a", 123);
      obj.put("b", 3.14);
    • 字符串

      Java BSON 构造字符串类型
      // {a:"hi"}
      BSONObject obj = new BasicBSONObject();
      obj.put("a", "hi");
    • 空类型

      Java BSON 构造空类型
      // {a:null}
      BSONObject obj = new BasicBSONObject();
      obj.put("a", null);
    • 对象

      Java BSON 构造嵌套对象类型
      // {b:{a:1}}
      BSONObject subObj = new BasicBSONObject();
      subObj.put("a", 1);
      BSONObject obj = new BasicBSONObject();
      obj.put("b", subObj);
    • 数组

      Java BSON 使用 org.bson.types.BasicBSONList 来构造数组类型
      // {a:[0,1,2]}
      BSONObject obj = new BasicBSONObject();
      BSONObject arr = new BasicBSONList();
      arr.put("0", 0);
      arr.put("1", 1);
      arr.put("2", 2);
      obj.put("a", arr);
    • 布尔

      Java BSON 构造布尔类型
      // {a:true, b:false}
      BSONObject obj = new BasicBSONObject();
      obj.put("a", true);
      obj.put("b", false);
    • 对象 ID

      Java BSON 使用 org.bson.types.ObjectId 来生成每条记录的“_id”字段内容。Java BSON 12 字节的 ObjectId 与数据库概念 - 数据库 - 文档 - 对象 ID 一节介绍的对象 ID 略有不同,目前,Java ObjectId 的12字节内容由三部分组成:4字节精确到秒的时间戳,4字节系统(物理机)标示,4字节由随机数起始的序列号。默认情况下,数据库为每条记录生成一个字段名为“_id”的唯一对象 ID。
      BSONObject obj = new BasicBSONObject();
      ObjectId id1 = new ObjectId();
      ObjectId id2 = new ObjectId("53bb5667c5d061d6f579d0bb");
      obj.put("_id", id1);
    • 正则表达式

      Java BSON 使用 java.util.regex.Pattern 来构造正则表达式数据类型。
      BSONObject matcher = new BasicBSONObject();
      Pattern obj = Pattern.compile("^2001",Pattern.CASE_INSENSITIVE);
      matcher.put("serial_num", obj);
      BSONObject modifier = new BasicBSONObject("$set", new BasicBSONObject("count",1000));
      cl.update(matcher, modifier, null);
      以上使用正则表达式构造了一个匹配条件,将序列号以“2001”开头的记录的“count”字段内容改为“1000”。
      Note: 以上使用 Patten 构造的 bson matcher,当使用 matcher.toString(),内容为:
      { "serial_num" : { "$options" : "i" , "$regex" : "^2001"}}
      通过以下 bson 构造方式也可以得到相同的内容:
      BSONObject matcher2 = new BasicBSONObject();
      BSONObject obj2 = new BasicBSONObject();
      obj2.put("$regex","^2001");
      obj2.put("$options","i");		
      matcher2.put("serial_num", obj2);
      但是,通过后者构造出的 matcher2 的数据类型是一个普通的对象嵌套类型,而不是正则表达式类型。
    • 日期

      Java BSON 使用 java.util.Date 来构造日期类型。
      BSONObject obj = new BasicBSONObject();
      Date now = new Date();
      obj.put("date", now);
    • 二进制

      Java BSON 使用 org.bson.types.Binary 来构造二进制类型。
      BSONObject obj = new BasicBSONObject();
      String str = "hello world";
      byte[] arr = str.getBytes();
      Binary bindata = new Binary(arr);
      obj.put("bindata", bindata);
    • 时间戳

      Java BSON 使用 org.bson.types.BSONTimestamp 来构造时间戳类型。
      int sec = 1404189030 ; // 2014-07-01 12:30:30
      BSONObject obj = new BasicBSONObject();
      BSONTimestamp ts = new BSONTimestamp(sec, 0);
      obj.put("timestamp", ts);
  • 相关阅读:
    SQL 大数据查询如何进行优化?
    事件和委托的区别
    虚方法(virtual)和抽象方法(abstract)的和接口(interface)的区别
    高并发的秒杀
    C#算法
    口试C#概念
    口试Linq题
    口试大数据及大并发问题
    Windows下MongoDB安装
    MongoDB简单介绍
  • 原文地址:https://www.cnblogs.com/yisheng163/p/9536354.html
Copyright © 2011-2022 走看看