Java 构造 BSON 数据类型
2021-07-15 16:04
标签:iad 不同 www html basic 字节 匹配 一个 codeblock 整数/符浮点数 字符串 空类型 对象 数组 布尔 对象 ID 正则表达式 日期 二进制 时间戳 Java 构造 BSON 数据类型 标签:iad 不同 www html basic 字节 匹配 一个 codeblock 原文地址:https://www.cnblogs.com/yisheng163/p/9536354.htmlJava 构造 BSON 数据类型
// {a:123, b:3.14}
BSONObject obj = new BasicBSONObject();
obj.put("a", 123);
obj.put("b", 3.14);
// {a:"hi"}
BSONObject obj = new BasicBSONObject();
obj.put("a", "hi");
// {a:null}
BSONObject obj = new BasicBSONObject();
obj.put("a", null);
// {b:{a:1}}
BSONObject subObj = new BasicBSONObject();
subObj.put("a", 1);
BSONObject obj = new BasicBSONObject();
obj.put("b", subObj);
// {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);
// {a:true, b:false}
BSONObject obj = new BasicBSONObject();
obj.put("a", true);
obj.put("b", false);
BSONObject obj = new BasicBSONObject();
ObjectId id1 = new ObjectId();
ObjectId id2 = new ObjectId("53bb5667c5d061d6f579d0bb");
obj.put("_id", id1);
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”。
{ "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 的数据类型是一个普通的对象嵌套类型,而不是正则表达式类型。
BSONObject obj = new BasicBSONObject();
Date now = new Date();
obj.put("date", now);
BSONObject obj = new BasicBSONObject();
String str = "hello world";
byte[] arr = str.getBytes();
Binary bindata = new Binary(arr);
obj.put("bindata", bindata);
int sec = 1404189030 ; // 2014-07-01 12:30:30
BSONObject obj = new BasicBSONObject();
BSONTimestamp ts = new BSONTimestamp(sec, 0);
obj.put("timestamp", ts);
上一篇:python 网络编程篇