BSON 및 MongoDB 데이터 유형

7090 단어
JSON은 광범위하게 사용되는 경량급 데이터 교환 형식으로 현재 절대 다수의 주류 개발 언어를 지원한다.최근 몇 년 동안 부상한 MongDB는 클래스 JSON의 데이터 형식을 채택하여 JSON에서 풍부하고 강화함으로써 MongodB가 더 큰 데이터 유형을 처리하고 보고할 수 있게 했다.본고는 2자에 대해 설명하고 몬goDB가 지원하는 데이터 유형을 제시한다.
1. JSON 특성
1JSON
        JSON(JavaScript Object Notation)              。
        JSON              ,        C       (  C、C++、C#、Java、JavaScript、Perl、Python )。
             JSON           。         ,            (            )。
              :http://www.json.org.cn/

2JSON        
          /     
              “‘  / ’ ”  。     “{”(   )  ,“}”(   )  。
          “  ”    “:”(  );“‘  / ’  ”    “,”(  )  。
         :  ({"firstName":"John"}),            BSON       
              JavaScript   : firstName="John"

3JSON         
          (      )
           (     )
           (true   false)
          (     )
          (     )
        null

4JSON      :
        “  / ”    (A collection of name/value pairs),               
                     :  (object),  (record),  (struct),  (dictionary)
                       (hash table),    (keyed list),       (associative array)
              。       ,       (array),  (vector),  (list),  (sequence)

2. BSON의 특징
1、   BSON
        BSON()    json             ,  Binary JSON
          JSON  ,              ,  BSON JSONDate BinData  。
        https://docs.mongodb.com/manual/reference/bson-types/

2、BSON   
       、    、   

3、mongoDB BSON
        mongoDB JSON       ,             ,          
        mongoDB              (Document),  BSON schema-free ,   MongoDB             
        mongoDB BSON                    

4. 몬goDB에서 지원하는 데이터 형식//null 값 시연
db.mycol.insert({x:null}) WriteResult({ “nInserted” : 1 })
//부울 유형, 부울 값 저장(진짜/가짜)
db.mycol.insert({x:true}) WriteResult({ “nInserted” : 1 })
//소수
db.mycol.insert({x:3.1515}) WriteResult({ “nInserted” : 1 })
값을 저장하는 정수32비트 또는 64비트
db.mycol.insert({x:3}) WriteResult({ “nInserted” : 1 })
//4 바이트 대역 정수
db.mycol.insert({x:NumberInt(“3”)}) WriteResult({ “nInserted” : 1 })
//8 바이트 기호 정수
db.mycol.insert({x:NumberLong(“3”)}) WriteResult({ “nInserted” : 1 })
//문자형, 저장 데이터가 자주 사용하는 데이터 형식.MongoDB에서 UTF-8 인코딩된 문자열이야말로 합법적이다
db.mycol.insert({x:”robin”}) WriteResult({ “nInserted” : 1 })
//날짜형
db.mycol.insert({x:new Date()}) WriteResult({ “nInserted” : 1 })
//정규 표현식
db.mycol.insert({x:/u01/i}) WriteResult({ “nInserted” : 1 })
//배열 또는 목록 또는 여러 값을 키로 저장하는 배열
db.mycol.insert({x:[“a”,”b”,”c”]}) WriteResult({ “nInserted” : 1 })
//포함된 문서에 대한 중첩 문서
db.mycol.insert({x:{y:”nested”}}) WriteResult({ “nInserted” : 1 })
//개체 id
db.mycol.insert({x:ObjectId()}) WriteResult({ “nInserted” : 1 })
//코드 세그먼트
db.mycol.insert({x:function(){/This is a test code/}}) WriteResult({ “nInserted” : 1 })
//mycol 집합된 문서 찾기
db.mycol.find({},{_id:0}) { “x” : null } { “x” : true } { “x” : 3.1515 } { “x” : 3 }//Author : Leshami { “x” : 3 }//Blog : http://blog.csdn.net/leshami { “x” : NumberLong(3) } { “x” : “robin” } { “x” : ISODate(“2016-09-06T02:46:35.173Z”) } { “x” :/u01/i } { “x” : [ “a”, “b”, “c” ] } { “x” : { “y” : “nested” } } { “x” : ObjectId(“57ce2f34ce8685a6fd9df3ae”) } { “x” : function (){/This is a test code/} }
//undefined 유형
db.mycol.insert({name:undefined}); WriteResult({ “nInserted” : 1 }) db.mycol.insert({name:”123”}); WriteResult({ “nInserted” : 1 }) printjson(db.mycol.find().toArray()) [ { “_id” : ObjectId(“57ce1cc8c60f1fe489e49c68”), “name” : undefined }, { “_id” : ObjectId(“57ce1cdbc60f1fe489e49c69”), “name” : “123” } ]
//undefined 유형의 문서 찾기
db.mycol.find({name:”undefined”}) db.mycol.find({name:undefined}) Error: error: { “waitedMS” : NumberLong(0), “ok” : 0, “errmsg” : “cannot compare to undefined”, “code” : 2 }
db.mycol.find({name:{$type:6}}) { “_id” : ObjectId(“57ce1cc8c60f1fe489e49c68”), “name” : undefined }
db.mycol.find({name:{$type:”undefined”}}) { “_id” : ObjectId(“57ce1cc8c60f1fe489e49c68”), “name” : undefined }
MongoDB 데이터 유형 비교 및 정렬 우선 순위 1) MinKey(internal type) 2) Null 3) Numbers(ints, longs, doubles) 4) Symbol, String 5) Object 6) Array 7) BinData 8) ObjectId 9) Boolean 10 Date 11 Times tamp 12 Regular Expression 13) MaxKey(internal type)
5_id Object_Id
mongoDB            "_id" ,     RDBMS    ,         mongoDB    
"_id"           ,         ,            
"_id"    ,    ,    MySQL    GTID,                    

a 4-byte value representing the seconds since the Unix epoch,  //   
a 3-byte machine identifier,                                   //       
a 2-byte process id, and                                       //  ID
a 3-byte counter, starting with a random value.                //   

db.mycol.findOne() {"id": ObjectId("57ce2d4cce8685a6fd9df3a3"), "x":null}57ce2d4c//타임 스탬프 ===>1473129804=> 2016/9/6 10:43:24 ce8685//기계 고유 식별 코드 a6fd//프로세스 ID 9df3a3//랜덤 수

좋은 웹페이지 즐겨찾기