Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ / /

Global Modules

Nesta página

  • Tokens da web JSON (utils.jwt)
  • utils.jwt.encode()
  • utils.jwt.decode()
  • Criptografia (utils.crypto)
  • utils.crypto.encrypt()
  • utils.crypto.decrypt()
  • utils.crypto.sign()
  • utils.crypto.verify()
  • utils.crypto.hmac()
  • utils.crypto.hash()
  • JSON (notação de objeto JavaScript)
  • JSON.parse()
  • JSON.stringify()
  • EJSON (JSON estendido)
  • EJSON.parse()
  • EJSON.stringify()
  • BSON (JSON binário)
  • BSON.ObjectId
  • BSON.BSONRegExp
  • BSON.Binary
  • BSON.MaxKey
  • BSON.MinKey
  • BSON.Int32
  • BSON.Int32()
  • BSON.Long
  • BSON.Double
  • BSON.Decimal128

Todas asfunções do têm acesso a módulos globais integrados que suportam trabalho comum de transformação, codificação e processamento de dados. Você pode acessar os módulos em seu código-fonte de função por meio de variáveis globais específicas para cada módulo.

Dica

Esses módulos globais não são iguais aos módulos integrados Node.js. Para obter mais informações sobre os módulos Node.js com suporte, incluindo como importá-los, consulte Suporte a módulos integrados.

Módulo
Descrição
JSON web token
Métodos para ler e gravar JSON web token.
Métodos que implementam algoritmos criptográficos como hashes e assinaturas.
Métodos que convertem entre representações de string e objeto de dados JSON estendidos .
Métodos que criam JSON binário objetos e converter entre vários tipos de dados e codificações BSON.

Você pode criar e ler JSON web tokens com a utils.jwt interface .

Método
Descrição
Gera uma string JSON web token codificada para um determinado payload, signingMethod e secret.
Decodifica o payload de uma string de JSON web token.

Gera uma string de JSON web token codificada para o payload com base no signingMethod e secret especificados.

utils.jwt.encode(
signingMethod: string,
payload: object,
secret: string,
customHeaderFields: object
): string
Parâmetro
Tipo
Descrição
signingMethod
string

O algoritmo criptográfico a ser usado ao codificar o JSON web token. O Atlas é compatível com os seguintes métodos de assinatura JSON web token :

  • "HS256": HMAC usando SHA-256

  • "HS384": HMAC usando SHA-384

  • "HS512": HMAC usando SHA-512

  • "RS256": RASSA-PKCS1-v1_5 usando SHA-256

  • "RS384": RASSA-PKCS1-v1_5 usando SHA-384

  • "RS512": RASSA-PKCS1-v1_5 usando SHA-512

  • "ES256": ECDSA usando P-256 e SHA-256

  • "ES384": ECDSA usando P-384 e SHA-384

  • "ES512": ECDSA usando P-512 e SHA-512

  • "PS256": RASSA-PSS usando SHA-256 e MGF1 com SHA-256

  • "PS384": RASSA-PSS usando SHA-384 e MGF1 com SHA-384

  • "PS512": RASSA-PSS usando SHA-512 e MGF1 com SHA-512

payload
objeto
Um objeto JSON que especifica as reivindicações do token e quaisquer dados adicionais relacionados.
secret
string

Uma string secreta que o Atlas utiliza para assinar o token. O valor da string depende do método de assinatura que você usa:

    • "HS256", "HS384" e "HS512": uma string aleatória.

    • "RS256", "RS384" e "RS512": uma chave privada RSA-SHA no formato PKCS#8 .

    • "PS256", "PS384" e "PS512": uma chave privada RSA-PSS no formato PKCS#8 .

    • "ES256", "ES384" e "ES512": Um ECDSA chave privada no8 formato PKCS# .

customHeaderFields
objeto
Um JSON objeto que especifica campos adicionais a serem incluídos no cabeçalho JOSE do JSON web token.

Retorna uma string de JSON web token codificada para o payload fornecido.

Considere o seguinte objeto de declaração JSON web token:

{
"sub": "1234567890",
"name": "Joe Example",
"iat": 1565721223187
}

Podemos codificar o objeto de declarações como uma string JSON web token ligando para utils.jwt.encode(). A função a seguir codifica o JSON web token usando o método de assinatura HS512 e o segredo "SuperSecret":

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"

Decodifica o payload da string de JSON web token fornecida. O valor de key deve corresponder ao valor secreto que foi usado para codificar a string JSON web token.

utils.jwt.decode(
jwtString: string,
key: string,
returnHeader: boolean
): object
Parâmetro
Tipo
Descrição
jwtString
string
Uma string de token da JSON da Web que codifica um conjunto de reivindicações assinado com um valor secreto.
key
string

Uma string que o Atlas utiliza para verificar a assinatura de token. O valor da string depende do método de assinatura que você usa:

  • "HS256", "HS384" e "HS512": a string aleatória que foi usada para assinar o token.

  • "RS256", "RS384" e "RS512": a chave pública RSA-SHA que corresponde à chave privada que foi usada para assinar o token.

  • "PS256", "PS384" e "PS512": a chave pública RSA-SHA que corresponde à chave privada que foi usada para assinar o token.

  • "ES256", "ES384" e "ES512": O ECDSA chave pública que corresponde à chave privada que foi usada para assinar o token.

returnHeader
booleano
Se true, retorne o cabeçalho JOSE do JSON web token além da carga útil descodificada.
acceptedSigningMethods
string[]
Opcional. Array de métodos de assinatura aceitos. Por exemplo, ["PS256", "HS256"]. Esse argumento deve ser incluído para evitar vulnerabilidades de segurança JWT conhecidas.

Se returnHeader for false, retorna a carga útil EJSON decodificada.

Se returnHeader for true, retorna um objeto que contém o cabeçalho JOSE no header campo e a carga útil EJSON decodificada no payload campo .

{
"header": {
"<JOSE Header Field>": <JOSE Header Value>,
...
},
"payload": {
"<JWT Claim Field>": <JWT Claim Value>,
...
}
}

Considere a seguinte string JSON web token assinada:

"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvZSBTY2htb2UiLCJpYXQiOjE1NjU3MjEyMjMxODd9.-QL15ldu2BYuJokNWT6YRiwZQIiIpvq6Kyv-C6qslNdNiUVxo8zqLJZ1iEkNf2yZKMIrQuMCtIC1tzd2H31AxA"

O JSON web token foi assinado usando o método de assinatura HS512 com o valor secreto "SuperSecret". Podemos decodificar o objeto de declarações do JWT utils.jwt.decode(). A função a seguir decodifica a string JSON web token em um objeto EJSON:

exports = function(jwtString) {
const key = "SuperSecret";
return utils.jwt.decode(jwtString, key, false, ["HS512"]);
}
{
"sub": "1234567890",
"name": "Joe Example",
"iat": { "$numberDouble": 1565721223187 }
}

Você pode criptografar, descriptografar, assinar e verificar dados usando algoritmos criptográficos com a interface utils.crypto .

Método
Descrição
Gera uma string de texto criptografada a partir de determinada string de texto usando um método e uma chave de criptografia específicos.
Descriptografa uma sequência de texto fornecida usando um método e uma chave de criptografia específicos.
Gera uma assinatura criptograficamente exclusiva para uma determinada mensagem usando uma chave privada.
Verifica se uma assinatura é válida para determinada mensagem e chave pública.
Gera um HMAC assinatura de uma determinada entrada e segredo.
Gera um valor de hash para uma determinada entrada e função de hash.

Gera uma string de texto criptografada a partir do texto fornecido usando o método e a chave de criptografia especificados.

utils.crypto.encrypt(
encryptionType: string,
message: string,
key: string
): BSON.Binary
Parâmetro
Tipo
Descrição
encryptionType
string

O tipo de criptografia com o qual criptografar a mensagem. Os seguintes tipos de criptografia são aceitos:

message
string
A sequência de texto que você deseja criptografar.
key
string

Uma chave criptográfica usada para criptografar o texto. A chave que você deve usar depende do método de criptografia:

  • AES: 16-byte, 24-byte ou 32-byte de string aleatória

Um objeto Binary BSON que contém a string de texto criptografada com o tipo de criptografia e chave especificados.

Suponha que definimos um valor chamado aesEncryptionKey que contém a seguinte chave de criptografia AES de 32 bytes:

"603082712271C525E087BD999A4E0738"

Com esta chave AES, podemos criptografar uma mensagem em uma string base64 usando a seguinte função:

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"

Descriptografa a string de texto fornecida usando a chave e o tipo de criptografia especificados. Se o tipo de criptografia e a chave forem iguais as usadas para criptografar, isso retorna o texto original, não criptografado.

utils.crypto.decrypt(
encryptionType: string,
encryptedMessage: BSON.Binary,
key: string
): BSON.Binary
Parâmetro
Tipo
Descrição
encryptionType
string

O tipo de criptografia que foi usada para criptografar o texto fornecido. Os seguintes tipos de criptografia são aceitos:

encryptedMessage
Um binário BSON que codifica a string de texto criptografada que você deseja descriptografar.
key
string

Uma chave criptográfica usada para descriptografar o texto. A chave que você deve usar depende do tipo de criptografia:

  • AES: 16-byte, 24-byte ou 32-byte de string aleatória

Um objeto Binary BSON que contém a mensagem descriptografada.

Se a mensagem criptografada fornecida foi criptografada com o método e a chave especificados, a mensagem descriptografada será idêntica à mensagem original.

Suponha que definimos um valor denominado aesEncryptionKey que contém a seguinte chave de criptografia AES 32bytes :

"603082712271C525E087BD999A4E0738"

Podemos usar essa chave AES para descriptografar qualquer string base64 que foi criptografada com a mesma chave usando a seguinte função:

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!"

Gera uma assinatura criptograficamente exclusiva para uma mensagem usando uma chave privada. A assinatura pode ser verificada com a chave pública correspondente para garantir que o assinante tenha acesso à chave privada e que o conteúdo da mensagem não tenha sido alterado desde que foi assinado.

utils.crypto.sign(
encryptionType: string,
message: string,
privateKey: string,
signatureScheme: string
): BSON.Binary
Parâmetro
Tipo
Descrição
encryptionType
string

O tipo de criptografia usado para gerar o par de chaves privada/pública. São aceitos os seguintes tipos de criptografia:

message
string
A sequência de texto que você deseja assinar.
privateKey
string

Uma chave privada gerada com o tipo de criptografia especificado.

Importante! Nem todas as chaves RSA usam o mesmo formato. O Atlas só pode assinar mensagens com uma chave privada que esteja em conformidade com o padrão PKCS#1 formato. As chaves privadas neste formato têm o cabeçalho -----BEGIN RSA PRIVATE KEY-----.

Você pode usar o roteiro shell a seguir para gerar um par de chaves públicas/privadas RSA válido e salvar cada chave em seu próprio arquivo de texto:

# Generate an RSA SSH key pair
# Save the key to a file called `rsa_key` when prompted
ssh-keygen -t rsa -m PEM -b 2048 -C "2048-bit RSA Key"
# Private Key
cat rsa_key > rsa.private.txt
# Public Key
ssh-keygen -f rsa_key.pub -e -m pem > rsa.public.txt
signatureScheme
string

Opcional. Padrão: "pss"

O esquema de preenchimento que a assinatura deve usar. O Atlas aceita assinar mensagens com os seguintes esquemas:

Uma assinatura criptográfica BSON.Binary para a mensagem assinada usando a chave privada especificada.

Vamos supor que definimos um valor denominado rsaPrivateKey que contém a seguinte chave privada RSA:

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

Com esta chave RSA, podemos assinar uma mensagem usando a seguinte função:

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="

Verifica se a assinatura fornecida é válida para a mensagem e a chave pública especificadas.

Se a assinatura for válida, ela garante que o signatário tenha acesso à chave privada correspondente e que o conteúdo da mensagem não tenha sido alterado desde que foi assinado.

utils.crypto.verify(
encryptionType: string,
message: string,
publicKey: string,
signature: BSON.Binary,
signatureScheme: string
): boolean
Parâmetro
Tipo
Descrição
encryptionType
string

O tipo de criptografia usado para gerar o par de chaves privada/pública. São aceitos os seguintes tipos de criptografia:

message
string
A string cuja assinatura você deseja verificar. Se a assinatura for válida, esta é a mensagem exata que foi assinada.
publicKey
string

A chave pública cuja assinatura você deseja verificar. Se a assinatura for válida, esta é a chave pública correspondente da chave privada que foi utilizada para assinar a mensagem.

Importante! Nem todas as chaves RSA usam o mesmo formato. O Atlas só pode verificar assinaturas com chaves RSA que estejam em conformidade com o padrão PKCS#1 formato. As chaves públicas neste formato têm o cabeçalho -----BEGIN RSA PUBLIC KEY-----.

Você pode usar o roteiro shell a seguir para gerar um par de chaves públicas/privadas RSA válido e salvar cada chave em seu próprio arquivo de texto:

# Generate an RSA SSH key pair
# Save the key to a file called `rsa_key` when prompted
ssh-keygen -t rsa -m PEM -b 2048 -C "2048-bit RSA Key"
# Private Key
cat rsa_key > rsa.private.txt
# Public Key
ssh-keygen -f rsa_key.pub -e -m pem > rsa.public.txt
signature
A assinatura que você deseja verificar.
signatureScheme
string

Opcional. Padrão: "pss"

O esquema de preenchimento que a assinatura utiliza. O Atlas oferece suporte à verificação de assinaturas que usam os seguintes esquemas:

Um booleano que, se true, indica se a assinatura é válida ou não para a mensagem fornecida e a chave pública.

Recebemos uma mensagem com uma assinatura no formato BSON.Binary e queremos verificar se a mensagem foi assinada com a chave privada que corresponde à chave pública RSA do emissor:

-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBANWwSOx7ao7i/enxEz+rxGrOWhzWV57fjKhi4pnZx6a5S7wmlzsoU7X5
omld1tI9k2EYt0A2fx/agwhnVH2GAQlGf9Cb9jILhE9MaDnmfMepKXOI1kkxDIRT
JTuTHn4pvqS2CiOGTyhxlGSiszwUTKWSsrOBKt9rLQ9xYc+wqWZ5AgMBAAE=
-----END RSA PUBLIC KEY-----

Com esta chave RSA, podemos verificar uma mensagem assinada com a chave privada correspondente usando a seguinte função:

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

Gera um HMAC assinatura da entrada e segredo fornecidos. Isso é útil ao se comunicar com serviços HTTP de terceiros que exigem solicitações assinadas.

utils.crypto.hmac(
input: string,
secret: string,
hash_function: string,
output_format: string
): string
Parâmetro
Tipo
Descrição
input
string
A entrada para a qual você deseja gerar uma assinatura.
secret
string
A chave secreta a ser usada ao gerar a assinatura.
hash_function
string
O nome da função de hash a ser usada ao gerar a assinatura. As seguintes funções são suportadas: "sha1", "sha256", "sha512".
output_format
string
O formato da assinatura gerada. Pode ser "hex" para uma string hexadecimal ou "base64" para uma string Base64.

A assinatura da entrada, no formato especificado por output_format.

A seguinte função gera uma assinatura sha256 como uma string em base64:

exports = function() {
const signature = utils.crypto.hmac(
"hello!",
"super-secret",
"sha256",
"base64"
)
return signature
}
"SUXd6PRMaTXXgBGaGsIHzaDWgTSa6C3D44lRGrvRak0="

Gera um valor de hash para a entrada fornecida usando a função de hash especificada.

utils.crypto.hash(
hash_function: string,
input: string | BSON.Binary
): BSON.Binary
Parâmetro
Tipo
Descrição
hash_function
string
O nome da função de hash. As seguintes funções são suportadas: "sha1", "sha256", "md5".
input
string ou BSON.Binary
Obrigatório. A entrada para a qual você gostaria de gerar um valor de hash.

Um objeto BSON.Binary que codifica o valor de hash para a entrada fornecida gerada pela função de hash especificada.

A função a seguir faz hash de uma string de entrada com sha256:

exports = function() {
return utils.crypto.hash(
"sha256",
"hello!"
)
}
"zgYJL7lI2f+sfRo3bkBLJrdXW8wR7gWkYV/vT+w6MIs="

O JSON módulo global fornece métodos JSON para serializar e desserializar objetos JavaScript padrão.

Método
Descrição
Analise uma string JSON serializada em um objeto JavaScript.
Serialize um objeto JavaScript em uma string JSON.

Analisa a string JSON fornecida e a converte em um objeto JavaScript.

JSON.parse(jsonString: string): object
Parâmetro
Tipo
Descrição
jsonString
Uma representação de string serializada de um objeto JSON padrão.

Um objeto JavaScript padrão gerado a partir da string JSON fornecida.

A seguinte função converte uma string JSON serializada em um objeto JavaScript equivalente:

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"
}

Serializa o objeto JavaScript fornecido para uma string JSON.

JSON.stringify(json: object): string
Parâmetro
Tipo
Descrição
object

Uma representação de string do objeto JavaScript fornecido.

A função a seguir serializa um objeto JavaScript em uma string JSON equivalente:

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\"}"

O módulo global EJSON é semelhante ao JSON , mas preserva informações adicionais do tipo JSON estendido .

O EJSON é um superconjunto de JSON padrão que adiciona suporte adicional para tipos que estão disponíveis no BSON , mas não incluídos na especificação JSON.

Método
Descrição
Analise uma string JSON estendida serializada em um objeto JavaScript.
Serialize um objeto JavaScript em uma string ExtendedJSON.

Analisa a string EJSON fornecida e a converte em um objeto JavaScript.

EJSON.parse(ejsonString: string): object
Parâmetro
Tipo
Descrição
ejsonString
string
Uma representação de string serializada de um objeto JSON estendido.

Uma representação de objeto JavaScript da string EJSON fornecida.

A função a seguir converte uma string EJSON serializada em um objeto JavaScript equivalente:

exports = function() {
const ejsonString = `{
"answer": {
"$numberLong": "42"
},
"submittedAt": {
"$date": {
"$numberLong": "1583167607977"
}
}
}`;
return EJSON.parse(ejsonString);
}
{
"answer": {
"$numberLong": "42"
},
"submittedAt": {
"$date": {
"$numberLong": "1583167607977"
}
}
}

Serializa o objeto JavaScript fornecido para uma string EJSON .

EJSON.stringify(json: object): string
Parâmetro
Tipo
Descrição
object
documento
Um objeto EJSON . O objeto pode conter BSON types.

Uma representação de string do objeto EJSON fornecido.

A função a seguir serializa um objeto JavaScript em uma string EJSON equivalente:

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\"}}}"

O módulo global do BSON permite a você criar objetos BSON digitados e convertê-los entre vários formatos de dados e codificações.

BSON, ou Binary JSON, é o formato de dados usado internamente pelos bancos de dados MongoDB. Ele codifica uma representação binária de estruturas de dados de documentos usando um superconjunto de tipos JSON padrão. Para obter mais informações, consulte a especificação BSON.

Tipo
Descrição
Representar um valor ObjectId
Representar uma expressão regular
Representar uma estrutura de dados binária
Representar um valor que compara mais alto do que todos os outros valores
Representar um valor que se compara menor do que todos os outros valores
Representar um número inteiro assinado de 32 bits
Representar um número inteiro assinado de 64 bits
Representar um número de ponto flutuante de 64 bits
Representa um número de ponto flutuante de 128 bits

O tipo BSON.ObjectId representa um identificador MongoDB ObjectId de 12 bytes.

Constrói um objeto BSON.ObjectId que codifica um ObjectId

new BSON.ObjectId(id: string)
Parâmetro
Tipo
Descrição
id
string
Opcional. Uma string de 12 bytes ou uma string de 24 caracteres hexadecimais.

Um objeto BSON.ObjectId que codifica a string ObjectId especificada ou uma string ObjectId gerada se nenhuma tiver sido especificada.

const objectId = new BSON.ObjectId("5e58667d902d38559c802b13");
const generatedObjectId = new BSON.ObjectId();

O BSON.BSONRegExp tipo representa uma expressão regular. Você pode usar um objeto BSON.BSONRegExp com o operador de query $regex para executar uma query de expressão regular em uma collection do MongoDB.

Constrói um objeto BSON.BSONRegExp a partir de uma string de expressão regular. Opcionalmente, você pode especificar sinalizadores de configuração.

BSON.BSONRegExp(pattern: string, flags: string)
Parâmetro
Tipo
Descrição
pattern
string
Uma expressão regular padrão.
flags
string

Um objeto BSON.BSONRegExp que codifica o padrão e os sinalizadores de expressão regular fornecidos.

const regex = BSON.BSONRegExp("the great", "ig");

O tipo BSON.Binary representa uma string de dados com codificação binária.

Constrói um objeto BSON.Binary a partir de dados representados como uma cadeia hexadecimal.

BSON.Binary.fromHex(
hexString: string,
subType?: number
): BSON.Binary
Parâmetro
Tipo
Descrição
hexString
string
Um byte alinhado string de caracteres hexadecimais (0-9 e At).
subType
inteiro
Opcional. O tipo de dados codificado na string hexadecimal. O valor deve estar no intervalo 0-255 onde 0, o valor padrão, representa um binário genérico. Para obter uma lista completa dos subtipos compatíveis, consulte a especificação BSON.

Devoluções

Um objeto BSON.Binary que codifica a string hexadecimal fornecida.

const binary = BSON.Binary.fromHex("54657374206d65737361676520706c656173652069676e6f7265=");

Converte o objeto BSON.Binary em uma string hexadecimal.

BSON.Binary.prototype.toHex(): string

Devoluções

Uma representação de string hexadecimal do objeto BSON.Binary fornecido.

export = function() {
const binary = BSON.Binary.fromHex(
"54657374206d65737361676520706c656173652069676e6f7265="
);
const hexString = binary.toHex();
return hexString
}
"54657374206d65737361676520706c656173652069676e6f7265="

Constrói um objeto BSON.Binary a partir de dados representados como uma string base64.

BSON.Binary.fromBase64(
base64String: string,
subType?: number
): BSON.Binary
Parâmetro
Tipo
Descrição
base64String
string

Uma sequência de caracteres codificados base64.

Observação: a string codificada base64deve incluir um ou dois sinais de igual (=), conhecido como "padding", no final da string. BSON.Binary.fromBase64() não suporta cadeia de caracteres não adicionadas.

subType
inteiro
Opcional. O tipo de dados codificado na string hexadecimal. O valor deve estar no intervalo 0-255 onde 0, o valor padrão, representa um binário genérico. Para obter uma lista completa dos subtipos compatíveis, consulte a especificação BSON.

Devoluções

Um objeto BSON.Binary que codifica a string base64 fornecida.

const binary = BSON.Binary.fromBase64("VGVzdCBtZXNzYWdlIHBsZWFzZSBpZ25vcmU=");

Converte um objeto BSON.Binary em uma string base64.

BSON.Binary.prototype.toBase64(): string

Devoluções

Uma representação de cadeia de caracteres base64 do objeto BSON.Binary .

const binary = BSON.Binary.fromBase64("VGVzdCBtZXNzYWdlIHBsZWFzZSBpZ25vcmU=");
const base64String = binary.toBase64();

Converte o objeto BSON.Binary em uma string UTF-8.

BSON.Binary.prototype.text(): string

Devoluções

Uma representação de string UTF-8 do objeto BSON.Binary fornecido.

const binary = BSON.Binary.fromBase64("VGVzdCBtZXNzYWdlIHBsZWFzZSBpZ25vcmU=");
const decodedString = binary.text();

O tipo BSON.MaxKey representa um valor que compara mais alto do que todos os outros valores BSON.

await collection.findOne({ date: { $lt: BSON.MaxKey } });

O tipo BSON.MinKey representa um valor que compara menor do que todos os outros valores BSON.

await collection.findOne({ date: { $gt: BSON.MinKey } });

O tipo BSON.Int32 representa um número inteiro assinado de 32 bits.

Constrói um objeto BSON.Int32 a partir de um número de 32 bits.

BSON.Int32(low32: number): BSON.Int32
Parâmetro
Tipo
Descrição
low32
número
Um número de 32 bits.

Um objeto BSON.Int32 que codifica o número inteiro especificado. Retorna 0 se nenhum argumento for fornecido.

const int32 = BSON.Int32(42);

O tipo BSON.Long representa um número inteiro assinado de 64 bits.

const long = BSON.Long(600206158, 342);
BSON.Long(low32: number, high32: number): BSON.Long

Constrói um objeto BSON.Long a partir de dois números inteiros de 32 bits que representam os 32 bits inferiores e os 32 bits superiores no número inteiro Long de 64 bits.

Parâmetro
Tipo
Descrição
low32
inteiro
Opcional. Os 32 bits inferiores do número inteiro longo. Esses bits representam os dígitos menos significativos do número.
high32
inteiro
Opcional. Os 32 bits superiores do número inteiro longo. Esses bits representam os dígitos mais significativos do número.

Devoluções

Um objeto BSON.Long que codifica o número inteiro especificado. Retorna 0 se nenhum argumento for fornecido.

BSON.Long codifica usando a seguinte fórmula:

(high32 * (2**32)) + low32

O tipo BSON.Double representa um número de ponto flutuante 64-bit (8-byte). Ele constrói um objeto BSON.Double a partir de um valor decimal de 64bits.

Importante

Use Decimal128 para dinheiro

BSON.Double está sujeito a erros de arredondamento de ponto flutuante, portanto, não é recomendado para casos de uso em que os valores decimais devem arredondar exatamente, por exemplo dados financeiros. Nesses casos, utilize BSON.Decimal128 .

BSON.Double(double: number): BSON.Double
Parâmetro
Tipo
Descrição
double
número
Um valor decimal de 64 bits.

Um objeto BSON.Double que codifica o duplo especificado. Retorna 0 se nenhum argumento for fornecido.

const double = BSON.Double(1234.5678);

O tipo BSON.Decimal128 representa um número de ponto flutuante de 128 bits (16 bytes). Esse tipo é destinado a casos de uso em que os valores decimais devem arredondar exatamente, por exemplo dados financeiros.

Constrói um BSON.Decimal128 a partir de uma representação de string de um número decimal.

BSON.Decimal128(decimalString: string): BSON.Decimal128
Parâmetro
Tipo
Descrição
decimalString
string
Uma string que representa um número decimal, por exemplo "1234.5678910123456".

Um BSON.Decimal128 que codifica o valor decimal fornecido.

const double = BSON.Decimal128.fromString("1234.5678910123456");

Voltar

Contexto