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);
java bson创建_Java 构造 BSON 数据类型相关推荐
- java抽象类创建_Java抽象类
Java可以创建一种类专门用来当做父类,这种类称为"抽象类". "抽象类"的作用类似"模板",其目的是要设计者依据它的格式来修改并创建新的类 ...
- java method 创建_java中创建对象的5种方式
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法. Java中有5种创建对象的方法,下面列出例子还有他们的字节码: 使用n ...
- java 数组写法_java书写、数据类型、数组定义
这里只记录java与php.javascript不同的地方,相同的地方就不赘述了. 1.java文件源码为以.java为后缀的文件,字节码文件是以.class为后缀的文件. 2.写好一个java源码之 ...
- java switch 类型_Java switch case数据类型原理解析
这篇文章主要介绍了Java switch case数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 中 switch cas ...
- java 静态类 创建_Java 中的静态类
Java 语言中可以定义一个静态类吗? 答案是显而易见的:YES ,Java 语言存在静态类. 我们都知道,Java 语言中存在 静态变量 .存在 静态方法 .也存在 静态块.其实,Java 语言还存 ...
- java criteria创建_Java hibernate如何创建一个Criteria对象?
本示例向您展示如何创建HibernateCriteria类的实例.要创建一个Criteria我们调用Session对象的工厂方法并传递持久性类作为参数.要执行Criteria查询,我们只需调用list ...
- java字符常量括_Java常量 变量 数据类型
常量分为两种: 1:字面值常量: A: 字符串常量,需要双引号括起来 "helloword" B:整数常量 10 C :小数常量 8.9 D:字符常量, ...
- java 静态成员 创建_Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序...
当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法: (2).如果类已经加载过 ...
- java enumeration 创建_Java Enumeration接口 - Java 教程 - 自强学堂
Java Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素. 这种传统接口已被迭代器取代,虽然Enumeration 还未被 ...
最新文章
- LeetCode01_二分法专题
- control-free CNV小记
- 周围剃光头顶留长发型_为什么很多秃头的人,宁愿周围留一圈头发,也不愿剃成光头?...
- numpy.transpose()转置失败的问题
- 马斯克宣布将芯片成功植入猴子大脑,让它们可以玩电子游戏
- app访问java web_Java Web App体系结构
- 一道无限级分类题的 PHP 实现
- LeetCode LRU Cache
- LeetCode 105. 从前序与中序遍历序列构造二叉树(递归)
- Linux宝库名人轶事栏目 | 我与中国开源软件二十年(一)
- Vista 如何关闭UAC(用户帐户控制)
- hualinux2.2 环境基础:rpm包安装el6、el7、el8选择
- HTML前端开发入门之表单标签/labei标签/datalist标签
- HDU 3713 Double Maze
- C#上位机系列(4)—示波器一新窗口的建立
- 【HTML系列】之HTML字体颜色设置
- 必应搜索引擎关键词网站采集URL域名工具国际版英文网址
- 记成功安装win10+elementary双系统
- Go语言学习资料大全整理
- 如何学好计算机英语怎么说,如何学好英语翻译
热门文章
- MATLAB高通滤波与低通滤波GUI实现代码
- Unity2021打包报错: Exception: OBSOLETE - Providing Android resources in Assets/Plugins/Android/
- 【仿乐享微信源码免费分享】99%的人都不知道的微信功能!
- javascript 二维数组创建
- softmax单元_初探softmax
- iOS开发入门——模拟器方向判断及基本功能
- linux的进程与线程通信方式,Linux的进程/线程间通信方式总结
- 给冰箱装块触摸屏,怎么样
- 纽约公共图书馆和皇后图书馆
- 机器学习:支持向量机SVM原理与理解