Global Modules
이 페이지의 내용
- JSON Web Token(
utils.jwt
) - utils.jwt.encode()
- utils.jwt.decode()
- 암호화(
utils.crypto
) - utils.crypto.encrypt()
- utils.crypto.decrypt()
- utils.crypto.sign()
- utils.crypto.verify()
- utils.crypto.hmac()
- utils.crypto.hash()
- JSON(JavaScript 객체 표기법)
- JSON.parse()
- JSON.stringify()
- EJSON(확장 JSON)
- EJSON.parse()
- EJSON.stringify()
- BSON(이진 JSON)
- BSON.ObjectId
- BSON.BSONRegExp
- BSON.Binary
- BSON.MaxKey
- BSON.MinKey
- BSON.Int32
- BSON.Int32()
- BSON.Long
- BSON.Double
- BSON.Decimal128
모든 함수 는 일반적인 데이터 변환, 인코딩 및 처리 작업을 지원 하는 내장 액세스 할 수 있습니다. 각 모듈에 특정한 글로벌 변수를 통해 함수 소스 코드 의 모듈에 액세스 할 수 있습니다.
팁
이러한 글로벌 모듈은 Node.js 내장 모듈과 동일 하지 않습니다 . 가져오는 방법 등 지원되는 Node.js 모듈에 대한 자세한 내용은 기본 제공 모듈 지원을 참조하세요.
모듈 | 설명 |
---|---|
JSON Web Token을 읽고 쓰는 메서드. | |
해시 및 서명과 같은 암호화 알고리즘을 구현하는 메서드입니다. | |
의 string 과 객체 표현을 변환하는 메서드 JSON 데이터. | |
확장 JSON string 데이터의 과 객체 표현 간에 변환하는 메서드입니다. | |
바이너리 JSON 을 생성하는 메서드 다양한 BSON 데이터 유형과 인코딩 간에 변환할 수 있습니다. |
JSON Web Tokens (utils.jwt
)
JSON Web Token 을 생성하고 읽을 수 utils.jwt
있습니다. 인터페이스를 사용합니다.
메서드 | 설명 |
---|---|
지정된 payload , signingMethod 및 secret 에 대해 인코딩된 JSON Web Token 문자열을 생성합니다. | |
JSON Web Token 문자열의 payload 를 디코딩합니다. |
utils.jwt.encode()
지정된 signingMethod
및 secret
를 기반으로 payload
에 대해 인코딩된 JSON Web Token 문자열을 생성합니다.
utils.jwt.encode( signingMethod: string, payload: object, secret: string, customHeaderFields: object ): string
Parameter | 유형 | 설명 |
---|---|---|
signingMethod | 문자열 | JSON web token 을 인코딩할 때 사용할 암호화 알고리즘 입니다. Atlas 는 다음과 같은 JSON web token 서명 메서드를 지원합니다.
|
payload | 객체 | 토큰의 클레임 및 추가 관련 데이터를 지정하는 JSON 객체입니다. |
secret | 문자열 | 가 string Atlas 토큰에 서명하는 데 사용하는 시크릿 입니다. string 값은 사용하는 서명 방법에 따라 달라집니다.
|
customHeaderFields | 객체 | JSON JSON 웹 토큰의 JOSE 헤더 에 포함할 추가 필드를 지정하는 객체입니다. |
반환
제공된 payload
에 대해 인코딩된 JSON web token string 을 반환합니다.
다음 JSON web token 클레임 객체를 가정해 보겠습니다.
{ "sub": "1234567890", "name": "Joe Example", "iat": 1565721223187 }
utils.jwt.encode()
을(를) 호출하여 클레임 객체를 JSON web token 문자열로 인코딩할 수 있습니다. 다음 함수는 HS512
서명 메서드와 시크릿 "SuperSecret"
을 사용하여 JSON web token를 인코딩합니다.
exports = function() { const signingMethod = "HS512"; const payload = { "sub": "1234567890", "name": "Joe Example", "iat": 1565721223187 }; const secret = "SuperSecret"; return utils.jwt.encode(signingMethod, payload, secret); }
"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvZSBTY2htb2UiLCJpYXQiOjE1NjU3MjEyMjMxODd9.-QL15ldu2BYuJokNWT6YRiwZQIiIpvq6Kyv-C6qslNdNiUVxo8zqLJZ1iEkNf2yZKMIrQuMCtIC1tzd2H31AxA"
utils.jwt.decode()
제공된 JSON Web Token 문자열의 payload
를 디코딩합니다. key
값은 JSON web token 문자열을 인코딩하는 데 사용된 시크릿 값과 일치해야 합니다.
utils.jwt.decode( jwtString: string, key: string, returnHeader: boolean ): object
Parameter | 유형 | 설명 |
---|---|---|
jwtString | 문자열 | 비밀 값으로 서명된 클레임 집합을 인코딩하는 JSON Web Token 문자열입니다. |
key | 문자열 | 가 string Atlas 토큰 서명을 확인하는 데 사용하는 입니다. string 값은 사용하는 서명 방법에 따라 달라집니다.
|
returnHeader | 부울 | 인 true 경우 JSON 웹 토큰의 JOSE 헤더 를 반환합니다. 디코딩된 페이로드에 추가합니다. |
acceptedSigningMethods | string[] | 선택 사항. 허용되는 서명 메서드의 배열입니다. 예: ["PS256", "HS256"] . 알려진 JSON 웹 토큰 보안 취약점 을 방지하려면 이 인수를 포함해야 합니다. . |
반환
returnHeader
가 false
인 경우, 디코딩된 EJSON 페이로드를 반환합니다.
이 인 경우 JOSE 헤더 returnHeader
true
가 포함된 객체를 반환합니다. 필드에 header
입력하고 필드에 디코딩된 EJSON 페이로드를 입력합니다.payload
{ "header": { "<JOSE Header Field>": <JOSE Header Value>, ... }, "payload": { "<JWT Claim Field>": <JWT Claim Value>, ... } }
서명된 다음 JSON web token 문자열을 가정해 보겠습니다.
"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvZSBTY2htb2UiLCJpYXQiOjE1NjU3MjEyMjMxODd9.-QL15ldu2BYuJokNWT6YRiwZQIiIpvq6Kyv-C6qslNdNiUVxo8zqLJZ1iEkNf2yZKMIrQuMCtIC1tzd2H31AxA"
JSON web token는 시크릿 값 "SuperSecret"
과 함께 HS512
서명 메서드를 사용하여 서명되었습니다. JWT의 클레임 객체 utils.jwt.decode()
를 디코딩할 수 있습니다. 다음 함수는 JSON web token 문자열을 EJSON 객체로 디코딩합니다.
exports = function(jwtString) { const key = "SuperSecret"; return utils.jwt.decode(jwtString, key, false, ["HS512"]); }
{ "sub": "1234567890", "name": "Joe Example", "iat": { "$numberDouble": 1565721223187 } }
암호화(utils.crypto
)
utils.crypto
인터페이스에서 암호화 알고리즘을 사용하여 데이터를 암호화, 해독, 서명 및 확인할 수 있습니다.
메서드 | 설명 |
---|---|
특정 암호화 방법과 키를 사용하여 주어진 텍스트 문자열에서 암호화된 텍스트 문자열을 생성합니다. | |
특정 암호화 방법과 키를 사용하여 제공된 텍스트 문자열을 해독합니다. | |
개인 키를 사용하여 지정된 메시지에 대한 암호화적으로 고유한 서명을 생성합니다. | |
서명이 지정된 메시지 및 공개 키에 유효한지 확인합니다. | |
HMAC 를 생성합니다. 지정된 입력 및 시크릿에서 서명합니다. | |
주어진 입력 및 해시 함수에 대한 해시 값을 생성합니다. |
utils.crypto.encrypt()
지정된 암호화 방법과 키를 사용하여 제공된 텍스트에서 암호화된 텍스트 문자열을 생성합니다.
utils.crypto.encrypt( encryptionType: string, message: string, key: string ): BSON.Binary
Parameter | 유형 | 설명 |
---|---|---|
encryptionType | 문자열 | 메시지를 암호화할 암호화 유형입니다. 지원되는 암호화 유형은 다음과 같습니다.
|
message | 문자열 | 암호화하려는 텍스트 문자열입니다. |
key | 문자열 | 텍스트를 암호화하는 데 사용되는 암호화 키입니다. 사용해야 하는 키는 암호화 방법에 따라 다릅니다.
|
반환
지정된 암호화 유형 및 키로 암호화된 텍스트 이 BSON 포함된 바이너리 객체입니다. string
다음 32바이트 AES 암호화 키를 포함하는 aesEncryptionKey
라는 값 을 정의했다고 가정해 보겠습니다.
"603082712271C525E087BD999A4E0738"
이 AES 키를 사용하면 다음 함수를 사용하여 메시지를 base64 문자열로 암호화할 수 있습니다.
exports = function() { const message = "MongoDB is great!" const key = context.values.get("aesEncryptionKey"); const encryptedMessage = utils.crypto.encrypt("aes", message, key); return encryptedMessage.toBase64(); }
"WPBuIvJ6Bity43Uh822dW8QlVYVJaFUiDeUjlTiJXzptUuTYIKPlXekBQAJb"
utils.crypto.decrypt()
지정된 암호화 유형 및 키를 사용하여 제공된 텍스트 문자열을 해독합니다. 암호화 유형과 키가 암호화에 사용된 것과 동일한 경우 암호화되지 않은 원본 텍스트가 반환됩니다.
utils.crypto.decrypt( encryptionType: string, encryptedMessage: BSON.Binary, key: string ): BSON.Binary
Parameter | 유형 | 설명 |
---|---|---|
encryptionType | 문자열 | 제공된 텍스트를 암호화하는 데 사용된 암호화 유형입니다. 지원되는 암호화 유형은 다음과 같습니다.
|
encryptedMessage | 해독하려는 암호화된 텍스트 문자열을 인코딩하는 BSON Binary입니다. | |
key | 문자열 | 텍스트를 해독하는 데 사용되는 암호화 키입니다. 사용해야 하는 키는 암호화 유형에 따라 다릅니다.
|
반환
해독된 메시지가 포함된 BSON 바이너리 객체입니다.
제공된 암호화된 메시지가 지정된 방법 및 키로 암호화된 경우 해독된 메시지는 원본 메시지와 동일합니다.
다음 32바이트 AES 암호화 키 를 포함하는 aesEncryptionKey
값을 정의했다고 가정해 보겠습니다.
"603082712271C525E087BD999A4E0738"
이 AES 키를 사용하면 다음 함수를 사용하여 동일한 키로 암호화된 모든 base64 문자열을 해독할 수 있습니다.
exports = function(encryptedMessage) { // The encrypted message must be a BSON.Binary if(typeof encryptedMessage === "string") { encryptedMessage = BSON.Binary.fromBase64(encryptedMessage) } const key = context.values.get("aesEncryptionKey"); const decryptedMessage = utils.crypto.decrypt("aes", encryptedMessage, key); return decryptedMessage.text(); }
"MongoDB is great!"
utils.crypto.sign()
개인 키를 사용하여 메시지에 대한 암호화적으로 고유한 서명을 생성합니다. 해당 공개 키로 서명을 확인하여 서명자가 개인 키에 액세스할 수 있고 서명된 이후 메시지 내용이 변경되지 않았는지 확인할 수 있습니다.
utils.crypto.sign( encryptionType: string, message: string, privateKey: string, signatureScheme: string ): BSON.Binary
Parameter | 유형 | 설명 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
encryptionType | 문자열 | 개인/공개 키 쌍을 생성하는 데 사용된 암호화 유형입니다. 지원되는 암호화 유형은 다음과 같습니다.
| ||||||||
message | 문자열 | 서명하려는 텍스트 문자열입니다. | ||||||||
privateKey | 문자열 | 지정된 암호화 유형으로 생성된 비공개 키입니다. 중요! 모든 RSA 키가 동일한 형식을 사용하는 것은 아닙니다. Atlas 는 표준 PKCS# 를 준수하는 비공개 키로만1 메시지에 서명할 수 있습니다. 형식. 이 형식의 개인 키에는 다음 shell 스크립트를 사용하여 유효한 RSA 비공개/공개 키 쌍을 생성하고 각 키를 자체 텍스트 파일에 저장할 수 있습니다.
| ||||||||
signatureScheme | 문자열 |
반환
BSON.Binary 암호화 서명 지정된 비공개 키를 사용하여 서명된 메시지에 해당합니다.
다음 RSA 비공개 키를 포함하는 rsaPrivateKey
이라는 값 을 정의했다고 가정해 보겠습니다.
-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQDVsEjse2qO4v3p8RM/q8Rqzloc1lee34yoYuKZ2cemuUu8Jpc7 KFO1+aJpXdbSPZNhGLdANn8f2oMIZ1R9hgEJRn/Qm/YyC4RPTGg55nzHqSlziNZJ JAyEUyU7kx5+Kb6ktgojhk8ocZRkorM8FEylkrKzgSrfay0PcWHPsKlmeQIDAQAB AoGAHlVK1L7kLmpMbuP4voYMeLjYE9XdVEEZf2GiFwLSE3mkJY44033y/Bb2lgxr DScOf675fFUAEK59ATlhxfu6s6rgx+g9qQQ+mL74YZWPqiZHBPjyMRaBalDVC4QF YJ+DopFcB8hY2ElXnbK70ALmVYNjw3RdmC97h0YfOsQcWW0CQQD18aeuPNicVnse Ku22vvhvQYlabaQh4xdkEIxz1TthZj48f61wZwEMipYqOAc5XEtDlNnxgeipv0yF RHstUjwXAkEA3m0Br/U/vC9evuXppWbONana08KLgfELyd3Uw9jG7VKJZTBH5mS8 7CB68aEF8egrJpo8Ss8BkWrvCxYDb4Y77wJAUlbOMZozVtvpKidrIFR9Lho91uWA Hsw9h4W20AzibXBig7SnJ0uE4WMAdS/+0yhgFkceVCmO8E2YW8Gaj4jJjwJASxtg AHy+ItuUEL4uIW4Pn8tVW0BMP3qX0niXyfI/ag/+2S5uePv3V3y4RzNqgH83Yved +FziWKpVQdcTHeuj/QJBAJl1G3WFruk0llIoKKbKljaEiCm1WCTcuEPbdOtkJYvO 9ZYQg/fji70FERkq2KHtY7aLhCHzy0d4n9xgE/pjV+I= -----END RSA PRIVATE KEY-----
이 RSA 키를 사용하면 다음 기능을 사용하여 메시지에 서명할 수 있습니다.
exports = function() { const message = "MongoDB is great!" const rsaPrivateKey = context.values.get("rsaPrivateKey"); const signature = utils.crypto.sign("rsa", message, rsaPrivateKey, "pss"); return signature.toBase64(); }
"SpfXcJwPbypArt+XuYQyuZqU52YCAY/sZj2kiuin2b6/RzyM4Ek3n3spOtqZJqxn1tfQavxIX4V+prbs74/pOaQkCLekl9Hoa1xOzSKcGoRd8U+n1+UBY3d3cyODGMpyr8Tim2HZAeLPE/D3Q36/K+jpgjvrJFXsJoAy5/PV7iEGV1fkzogmZtXWDcUUBBTTNPY4qZTzjNhL4RAFOc7Mfci+ojE/lLsNaumUVU1/Eky4vasmyjqunm+ULCcRmgWtGDMGHaQV4OXC2LMUe9GOqd3Q9ghCe0Vlhn25oTh8cXoGpd1Fr8wolNa//9dUqSM+QYDpZJXGLShX/Oa8mPwJZKDKHtqrS+2vE6S4dDWR7zKDza+DeovOeCih71QyuSYMXSz+WWGgfLzv/syhmUXP/mjqgLmJU6Kwg5htajDoylpzLC0BLGT4zDZEwBrq/AjwRs/EPjYdFgGCt1WCbbVlDyXvvH1ekDrzACzumhiMSZNNa+ZH3JmMJxTCQWDfiTeAfkauaaZHKIj2q2/QE7vuAhNcVPJ2YgpXnvnQHJpEZBc/Y3Q6JLxom6+cGC4P//9d++r2cwzXIkqD+wSGZVSVtpm5CLtWMRSK5FX2dv16bM+LE8ozoRvtMUDTrQ8SSSDGxyuYbvN9b2fYYPcWpCMchqOBXV6eZGoMldaHX3Qy5h8="
utils.crypto.verify()
제공된 서명이 지정된 메시지 및 공개 키에 유효한지 확인합니다.
서명이 유효하면 서명자가 해당 개인 키에 액세스할 수 있고 서명된 이후 메시지 내용이 변경되지 않았음을 보장합니다.
utils.crypto.verify( encryptionType: string, message: string, publicKey: string, signature: BSON.Binary, signatureScheme: string ): boolean
Parameter | 유형 | 설명 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
encryptionType | 문자열 | 개인/공개 키 쌍을 생성하는 데 사용된 암호화 유형입니다. 지원되는 암호화 유형은 다음과 같습니다.
| ||||||||
message | 문자열 | 서명을 확인하려는 텍스트 문자열입니다. 서명이 유효한 경우 서명된 정확한 메시지입니다. | ||||||||
publicKey | 문자열 | 서명을 확인하려는 공개 키입니다. 서명이 유효한 경우 이는 메시지에 서명하는 데 사용된 개인 키의 해당 공개 키입니다. 중요! 모든 RSA 키가 동일한 형식을 사용하는 것은 아닙니다. Atlas 는 표준 PKCS# 를 준수하는 RSA 키가1 있는 서명만 확인할 수 있습니다. 형식. 이 형식의 공개 키에는 다음 shell 스크립트를 사용하여 유효한 RSA 비공개/공개 키 쌍을 생성하고 각 키를 자체 텍스트 파일에 저장할 수 있습니다.
| ||||||||
signature | 확인하려는 서명입니다. | |||||||||
signatureScheme | 문자열 |
반환
true
인 경우 서명이 제공된 메시지 및 공개 키에 대해 유효한지 여부를 나타내는 부울입니다.
BSON.Binary 형식의 서명이 포함된 메시지를 받았으며, 해당 메시지가 발신자의 RSA 공개 키에 해당하는 비공개 키로 서명되었는지 확인하려고 합니다.
-----BEGIN RSA PUBLIC KEY----- MIGJAoGBANWwSOx7ao7i/enxEz+rxGrOWhzWV57fjKhi4pnZx6a5S7wmlzsoU7X5 omld1tI9k2EYt0A2fx/agwhnVH2GAQlGf9Cb9jILhE9MaDnmfMepKXOI1kkxDIRT JTuTHn4pvqS2CiOGTyhxlGSiszwUTKWSsrOBKt9rLQ9xYc+wqWZ5AgMBAAE= -----END RSA PUBLIC KEY-----
이 RSA 키를 사용하면 다음 함수를 사용하여 해당 개인 키로 서명된 메시지를 확인할 수 있습니다.
exports = function() { const rsaPublicKey = context.values.get("rsaPublicKey"); const message = "MongoDB is great!" const signature = BSON.Binary.fromBase64("SpfXcJwPbypArt+XuYQyuZqU52YCAY/sZj2kiuin2b6/RzyM4Ek3n3spOtqZJqxn1tfQavxIX4V+prbs74/pOaQkCLekl9Hoa1xOzSKcGoRd8U+n1+UBY3d3cyODGMpyr8Tim2HZAeLPE/D3Q36/K+jpgjvrJFXsJoAy5/PV7iEGV1fkzogmZtXWDcUUBBTTNPY4qZTzjNhL4RAFOc7Mfci+ojE/lLsNaumUVU1/Eky4vasmyjqunm+ULCcRmgWtGDMGHaQV4OXC2LMUe9GOqd3Q9ghCe0Vlhn25oTh8cXoGpd1Fr8wolNa//9dUqSM+QYDpZJXGLShX/Oa8mPwJZKDKHtqrS+2vE6S4dDWR7zKDza+DeovOeCih71QyuSYMXSz+WWGgfLzv/syhmUXP/mjqgLmJU6Kwg5htajDoylpzLC0BLGT4zDZEwBrq/AjwRs/EPjYdFgGCt1WCbbVlDyXvvH1ekDrzACzumhiMSZNNa+ZH3JmMJxTCQWDfiTeAfkauaaZHKIj2q2/QE7vuAhNcVPJ2YgpXnvnQHJpEZBc/Y3Q6JLxom6+cGC4P//9d++r2cwzXIkqD+wSGZVSVtpm5CLtWMRSK5FX2dv16bM+LE8ozoRvtMUDTrQ8SSSDGxyuYbvN9b2fYYPcWpCMchqOBXV6eZGoMldaHX3Qy5h8=") const isValid = utils.crypto.verify("rsa", message, rsaPublicKey, signature, "pss"); return isValid; // true if the signature matches, else false }
true
utils.crypto.hmac()
HMAC 를 생성합니다. 제공된 입력 및 시크릿에서 서명합니다. 이는 서명된 요청이 필요한 타사 HTTP 서비스와 통신할 때 유용합니다.
utils.crypto.hmac( input: string, secret: string, hash_function: string, output_format: string ): string
Parameter | 유형 | 설명 |
---|---|---|
input | 문자열 | 서명을 생성하려는 입력입니다. |
secret | 문자열 | 서명을 생성할 때 사용할 시크릿 키입니다. |
hash_function | 문자열 | 서명을 생성할 때 사용할 해싱 함수의 이름입니다. 지원되는 함수는 "sha1" , "sha256" , "sha512" 입니다. |
output_format | 문자열 | 생성된 서명의 형식입니다. 16진수 문자열의 경우 "hex" , Base64 문자열의 경우 "base64" 중 하나일 수 있습니다. |
반환
output_format
으로 지정된 형식의 입력 서명입니다.
다음 함수는 sha256 서명을 기본 64 문자열로 생성합니다.
exports = function() { const signature = utils.crypto.hmac( "hello!", "super-secret", "sha256", "base64" ) return signature }
"SUXd6PRMaTXXgBGaGsIHzaDWgTSa6C3D44lRGrvRak0="
utils.crypto.hash()
지정된 해시 함수를 사용하여 제공된 입력에 대한 해시 값을 생성합니다.
utils.crypto.hash( hash_function: string, input: string | BSON.Binary ): BSON.Binary
Parameter | 유형 | 설명 |
---|---|---|
hash_function | 문자열 | 해싱 함수의 이름입니다. 지원되는 함수는 "sha1" , "sha256" , "md5" 입니다. |
input | 문자열 또는 BSON.Binary | 필수입니다. 해시 값을 생성하려는 입력입니다. |
반환
지정된 해싱 함수에서 생성된 제공된 입력에 대한 해시 값을 인코딩하는 BSON.Binary
객체입니다.
다음 함수는 sha256을 사용하여 입력 문자열을 해시합니다.
exports = function() { return utils.crypto.hash( "sha256", "hello!" ) }
"zgYJL7lI2f+sfRo3bkBLJrdXW8wR7gWkYV/vT+w6MIs="
JSON(JavaScript 객체 표기법)
JSON
글로벌 모듈은 JSON 메서드 를 제공합니다. 표준 JavaScript 객체를 직렬화 및 역직렬화합니다.
메서드 | 설명 |
---|---|
직렬화된 JSON 문자열을 JavaScript 객체로 구문 분석합니다. | |
JavaScript 객체를 JSON 문자열로 직렬화합니다. |
JSON.parse()
제공된 JSON 문자열을 구문 분석하여 JavaScript 객체로 변환합니다.
JSON.parse(jsonString: string): object
Parameter | 유형 | 설명 |
---|---|---|
jsonString | 표준 JSON 객체의 직렬화된 문자열 표현입니다. |
반환
제공된 JSON 문자열에서 생성된 표준 JavaScript 객체입니다.
다음 함수는 직렬화된 JSON 문자열을 이에 상응하는 JavaScript 객체로 변환합니다.
exports = function() { const jsonString = `{ "answer": 42, "submittedAt": "2020-03-02T16:50:24.475Z" }`; return JSON.parse(jsonString); }
{ "answer": 42, "submittedAt": "2020-03-02T16:50:24.475Z" }
JSON.stringify()
제공된 JavaScript 객체를 JSON 문자열로 직렬화합니다.
JSON.stringify(json: object): string
Parameter | 유형 | 설명 |
---|---|---|
object |
반환
제공된 JavaScript 객체의 문자열 표현입니다.
다음 함수는 JavaScript 객체를 동등한 JSON 문자열로 직렬화합니다.
exports = function() { const jsonObject = { answer: 42, submittedAt: new Date("2020-03-02T16:46:47.977Z") }; return JSON.stringify(jsonObject); }
"{\"answer\":42,\"submittedAt\":\"2020-03-02T16:46:47.977Z\"}"
EJSON(확장 JSON)
EJSON
글로벌 모듈은 JSON 과 유사하지만 추가 확장 JSON 유형 정보를 유지합니다.
EJSON은 표준 JSON의 상위 집합으로,BSON 에서 사용할 수 있지만 JSON 사양 에는 포함되지 않은 유형에 대한 추가 지원을 추가합니다. .
메서드 | 설명 |
---|---|
직렬화된 확장 JSON 문자열을 JavaScript 객체로 구문 분석합니다. | |
JavaScript 객체를 ExtendedJSON 문자열로 직렬화합니다. |
EJSON.parse()
제공된 EJSON string 을 구문 분석하여 JavaScript 객체로 변환합니다.
EJSON.parse(ejsonString: string): object
Parameter | 유형 | 설명 |
---|---|---|
ejsonString | 문자열 | 확장 JSON 객체의 직렬화된 문자열 표현입니다. |
반환
제공된 EJSON 문자열의 JavaScript 객체 표현입니다.
다음 함수는 직렬화된 EJSON 문자열을 이에 상응하는 JavaScript 객체로 변환합니다.
exports = function() { const ejsonString = `{ "answer": { "$numberLong": "42" }, "submittedAt": { "$date": { "$numberLong": "1583167607977" } } }`; return EJSON.parse(ejsonString); }
{ "answer": { "$numberLong": "42" }, "submittedAt": { "$date": { "$numberLong": "1583167607977" } } }
EJSON.stringify()
제공된 JavaScript 객체를 EJSON string 로 직렬화합니다.
EJSON.stringify(json: object): string
Parameter | 유형 | 설명 |
---|---|---|
object | 문서 | EJSON 객체입니다. 객체에 BSON types가 포함될 수 있습니다. |
반환
제공된 EJSON 객체의 문자열 표현입니다.
다음 함수는 JavaScript 객체를 동등한 EJSON 문자열로 직렬화합니다.
exports = function() { const jsonObject = { answer: 42, submittedAt: new Date("2020-03-02T16:46:47.977Z") }; return EJSON.stringify(jsonObject); }
"{\"answer\":{\"$numberLong\":\"42\"},\"submittedAt\":{\"$date\":{\"$numberLong\":\"1583167607977\"}}}"
BSON(이진 JSON)
BSON
글로벌 모듈을 사용하면 유형이 지정된 BSON 객체를 생성하고 이를 다양한 데이터 형식 및 인코딩 간에 변환할 수 있습니다.
BSON 또는 바이너리 JSON은 MongoDB 데이터베이스에서 내부적으로 사용되는 데이터 형식입니다. 표준 JSON 유형의 상위 집합을 사용하여 문서 데이터 구조의 이진 표현을 인코딩합니다. 자세한 내용은 BSON 사양을 참조하세요.
유형 | 설명 |
---|---|
ObjectId 값을 나타냅니다. | |
정규 표현식을 나타냅니다. | |
이진 데이터 구조를 나타냅니다. | |
다른 모든 값보다 높게 비교되는 값을 나타냅니다. | |
다른 모든 값보다 낮게 비교되는 값을 나타냅니다. | |
부호 있는 32비트 정수를 나타냅니다. | |
부호 있는 64비트 정수를 나타냅니다. | |
64비트 부동 소수점 숫자를 나타냅니다. | |
128비트 부동 소수점 숫자를 나타냅니다. |
BSON.ObjectId
BSON.ObjectId
유형은 12바이트 MongoDB ObjectId
식별자를 나타냅니다.
ObjectId를 인코딩하는 BSON.ObjectId
객체를 생성합니다.
new BSON.ObjectId(id: string)
Parameter | 유형 | 설명 |
---|---|---|
id | 문자열 | 선택 사항. 12바이트 문자열 또는 24자의 16진수 문자열입니다. |
반환
지정된 ObjectId string 또는 지정된 문자열이 없는 경우 생성된 ObjectId
string 을 인코딩하는 BSON.ObjectId
객체입니다.
const objectId = new BSON.ObjectId("5e58667d902d38559c802b13"); const generatedObjectId = new BSON.ObjectId();
BSON.BSONRegExp
BSON.BSONRegExp
유형은 정규 표현식 을 나타냅니다. . BSON.BSONRegExp
객체를 $regex
쿼리 연산자와 함께 사용하여 MongoDB 컬렉션에서 정규 표현식 쿼리를 수행할 수 있습니다.
정규 표현식 문자열에서 BSON.BSONRegExp
객체를 생성합니다. 선택적으로 구성 플래그를 지정할 수 있습니다.
BSON.BSONRegExp(pattern: string, flags: string)
Parameter | 유형 | 설명 |
---|---|---|
pattern | 문자열 | 정규 표현식 패턴. |
flags | 문자열 | 선택 사항. 하나 이상의 정규 표현식 플래그입니다. |
반환
제공된 정규 표현식 패턴과 플래그를 인코딩하는 BSON.BSONRegExp
객체입니다.
const regex = BSON.BSONRegExp("the great", "ig");
BSON.Binary
BSON.Binary
유형은 바이너리 인코딩 데이터 문자열을 나타냅니다.
BSON.Binary.fromHex()
16진수 문자열로 표시된 데이터에서 BSON.Binary
객체를 생성합니다.
BSON.Binary.fromHex( hexString: string, subType?: number ): BSON.Binary
Parameter | 유형 | 설명 |
---|---|---|
hexString | 문자열 | 바이트 정렬 string 16진수 (0-9 및 AF). |
subType | integer | 선택 사항. 16진수 string 로 인코딩된 데이터 유형입니다. 값은 0-255 범위에 있어야 하며, 여기서 0 기본값은 일반 바이너리를 나타냅니다. 지원되는 하위 유형의 전체 목록은 BSON 사양을 참조하세요. |
반환
제공된 16진수 문자열을 인코딩하는 BSON.Binary
객체입니다.
const binary = BSON.Binary.fromHex("54657374206d65737361676520706c656173652069676e6f7265=");
BSON.Binary.prototype.toHex()
BSON.Binary
객체를 16진수 문자열로 변환합니다.
BSON.Binary.prototype.toHex(): string
반환
제공된 BSON.Binary
객체의 16진수 문자열 표현입니다.
export = function() { const binary = BSON.Binary.fromHex( "54657374206d65737361676520706c656173652069676e6f7265=" ); const hexString = binary.toHex(); return hexString }
"54657374206d65737361676520706c656173652069676e6f7265="
BSON.Binary.fromBase64()
base64 문자열로 표시되는 데이터에서 BSON.Binary
객체를 생성합니다.
BSON.Binary.fromBase64( base64String: string, subType?: number ): BSON.Binary
Parameter | 유형 | 설명 |
---|---|---|
base64String | 문자열 | base64로 인코딩된 문자의 문자열입니다. 참고: 기본64인코딩된 string 은 string 끝에 '패딩'이라고 하는 하나 또는 두 개의 등호( |
subType | integer | 선택 사항. 16진수 string 로 인코딩된 데이터 유형입니다. 값은 0-255 범위에 있어야 하며, 여기서 0 기본값은 일반 바이너리를 나타냅니다. 지원되는 하위 유형의 전체 목록은 BSON 사양을 참조하세요. |
반환
제공된 base64 문자열을 인코딩하는 BSON.Binary
객체입니다.
const binary = BSON.Binary.fromBase64("VGVzdCBtZXNzYWdlIHBsZWFzZSBpZ25vcmU=");
BSON.Binary.prototype.toBase64()
BSON.Binary
객체를 base64 문자열로 변환합니다.
BSON.Binary.prototype.toBase64(): string
반환
BSON.Binary
객체의 base64 문자열 표현입니다.
const binary = BSON.Binary.fromBase64("VGVzdCBtZXNzYWdlIHBsZWFzZSBpZ25vcmU="); const base64String = binary.toBase64();
BSON.Binary.prototype.text()
BSON.Binary
객체를 UTF-8 문자열로 변환합니다.
BSON.Binary.prototype.text(): string
반환
제공된 BSON.Binary
객체의 UTF-8 문자열 표현입니다.
const binary = BSON.Binary.fromBase64("VGVzdCBtZXNzYWdlIHBsZWFzZSBpZ25vcmU="); const decodedString = binary.text();
BSON.MaxKey
BSON.MaxKey
유형은 다른 모든 BSON 값보다 높게 비교되는 값을 나타냅니다.
await collection.findOne({ date: { $lt: BSON.MaxKey } });
BSON.MinKey
BSON.MinKey
유형은 비교되는 다른 모든 BSON 값보다 낮게 비교되는 값을 나타냅니다.
await collection.findOne({ date: { $gt: BSON.MinKey } });
BSON.Int32
BSON.Int32
유형은 부호 있는 32비트 정수를 나타냅니다.
BSON.Int32()
32비트 숫자에서 BSON.Int32
객체를 생성합니다.
BSON.Int32(low32: number): BSON.Int32
Parameter | 유형 | 설명 |
---|---|---|
low32 | 숫자 | 32비트 숫자입니다. |
반환
지정된 정수를 인코딩하는 BSON.Int32
객체입니다. 인수를 제공하지 않으면 0
을(를) 반환합니다.
const int32 = BSON.Int32(42);
BSON.Long
BSON.Long
유형은 부호 있는 64비트 정수를 나타냅니다.
const long = BSON.Long(600206158, 342);
BSON(낮은32, 높은32)
BSON.Long(low32: number, high32: number): BSON.Long
64비트 Long
정수의 하위 32비트와 상위 32비트를 나타내는 두 개의 32비트 정수로 BSON.Long
객체를 생성합니다.
Parameter | 유형 | 설명 |
---|---|---|
low32 | integer | 선택 사항. 긴 정수의 하위 32비트입니다. 이 비트는 숫자의 최하위 자릿수를 나타냅니다. |
high32 | integer | 선택 사항. 긴 정수의 상위 32비트입니다. 이 비트는 숫자의 최상위 자릿수를 나타냅니다. |
반환
지정된 정수를 인코딩하는 BSON.Long
객체입니다. 인수를 제공하지 않으면 0
을(를) 반환합니다.
BSON.Long
다음 공식을 사용하여 인코딩합니다.
(high32 * (2**32)) + low32
BSON.Double
BSON.Double
유형은 64비트(8바이트) 부동 점 숫자를 나타냅니다. 64비트 10진수 값에서 BSON.Double
객체 를 생성합니다.
중요
돈을 위해 Decimal128 사용
BSON.Double
부동 소수점 반올림 오류가 발생할 수 있으므로 소수점 값이 정확히 반올림되어야 하는 사용 사례에는 권장되지 않습니다. 금융 데이터. 이러한 경우에는 대신 BSON.Decimal128 을(를) 사용하세요.
BSON.Double(double: number): BSON.Double
Parameter | 유형 | 설명 |
---|---|---|
double | 숫자 | 64비트 10진수 값입니다. |
반환
지정된 더블을 인코딩하는 BSON.Double
객체입니다. 인수를 제공하지 않으면 0
을(를) 반환합니다.
const double = BSON.Double(1234.5678);
BSON.Decimal128
BSON.Decimal128
유형은 128비트(16바이트) 부동 소수점 숫자를 나타냅니다. 이 유형은 소수점 값이 정확히 반올림되어야 하는 사용 사례에 사용됩니다. 금융 데이터.
10진수의 문자열 표현에서 BSON.Decimal128
를 생성합니다.
BSON.Decimal128(decimalString: string): BSON.Decimal128
Parameter | 유형 | 설명 |
---|---|---|
decimalString | 문자열 | 10진수를 나타내는 문자열(예: "1234.5678910123456" . |
반환
제공된 10진수 값을 인코딩하는 BSON.Decimal128
입니다.
const double = BSON.Decimal128.fromString("1234.5678910123456");