整数/符浮点数

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);

java bson创建_Java 构造 BSON 数据类型相关推荐

  1. java抽象类创建_Java抽象类

    Java可以创建一种类专门用来当做父类,这种类称为"抽象类". "抽象类"的作用类似"模板",其目的是要设计者依据它的格式来修改并创建新的类 ...

  2. java method 创建_java中创建对象的5种方式

    作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法. Java中有5种创建对象的方法,下面列出例子还有他们的字节码: 使用n ...

  3. java 数组写法_java书写、数据类型、数组定义

    这里只记录java与php.javascript不同的地方,相同的地方就不赘述了. 1.java文件源码为以.java为后缀的文件,字节码文件是以.class为后缀的文件. 2.写好一个java源码之 ...

  4. java switch 类型_Java switch case数据类型原理解析

    这篇文章主要介绍了Java switch case数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 中 switch cas ...

  5. java 静态类 创建_Java 中的静态类

    Java 语言中可以定义一个静态类吗? 答案是显而易见的:YES ,Java 语言存在静态类. 我们都知道,Java 语言中存在 静态变量 .存在 静态方法 .也存在 静态块.其实,Java 语言还存 ...

  6. java criteria创建_Java hibernate如何创建一个Criteria对象?

    本示例向您展示如何创建HibernateCriteria类的实例.要创建一个Criteria我们调用Session对象的工厂方法并传递持久性类作为参数.要执行Criteria查询,我们只需调用list ...

  7. java字符常量括_Java常量 变量 数据类型

    常量分为两种: 1:字面值常量: A: 字符串常量,需要双引号括起来     "helloword" B:整数常量      10 C :小数常量      8.9 D:字符常量, ...

  8. java 静态成员 创建_Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序...

    当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法: (2).如果类已经加载过 ...

  9. java enumeration 创建_Java Enumeration接口 - Java 教程 - 自强学堂

    Java Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被 ...

最新文章

  1. LeetCode01_二分法专题
  2. control-free CNV小记
  3. 周围剃光头顶留长发型_为什么很多秃头的人,宁愿周围留一圈头发,也不愿剃成光头?...
  4. numpy.transpose()转置失败的问题
  5. 马斯克宣布将芯片成功植入猴子大脑,让它们可以玩电子游戏
  6. app访问java web_Java Web App体系结构
  7. 一道无限级分类题的 PHP 实现
  8. LeetCode LRU Cache
  9. LeetCode 105. 从前序与中序遍历序列构造二叉树(递归)
  10. Linux宝库名人轶事栏目 | 我与中国开源软件二十年(一)
  11. Vista 如何关闭UAC(用户帐户控制)
  12. hualinux2.2 环境基础:rpm包安装el6、el7、el8选择
  13. HTML前端开发入门之表单标签/labei标签/datalist标签
  14. HDU 3713 Double Maze
  15. C#上位机系列(4)—示波器一新窗口的建立
  16. 【HTML系列】之HTML字体颜色设置
  17. 必应搜索引擎关键词网站采集URL域名工具国际版英文网址
  18. 记成功安装win10+elementary双系统
  19. Go语言学习资料大全整理
  20. 如何学好计算机英语怎么说,如何学好英语翻译

热门文章

  1. MATLAB高通滤波与低通滤波GUI实现代码
  2. Unity2021打包报错: Exception: OBSOLETE - Providing Android resources in Assets/Plugins/Android/
  3. 【仿乐享微信源码免费分享】99%的人都不知道的微信功能!
  4. javascript 二维数组创建
  5. softmax单元_初探softmax
  6. iOS开发入门——模拟器方向判断及基本功能
  7. linux的进程与线程通信方式,Linux的进程/线程间通信方式总结
  8. 给冰箱装块触摸屏,怎么样
  9. 纽约公共图书馆和皇后图书馆
  10. 机器学习:支持向量机SVM原理与理解