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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM