Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/

Global Modules

Nesta página

  • Serviços públicos
  • Tokens da web JSON (utils.jwt)
  • Criptografia (utils.crypto)
  • JSON (notação de objeto JavaScript)
  • EJSON (JSON estendido)
  • BSON (JSON binário)
  • BSON.ObjectId
  • BSON.BSONRegExp
  • BSON.Binary
  • BSON.MaxKey
  • BSON.MinKey
  • BSON.Int32
  • BSON.Long
  • BSON.Double
  • BSON.Decimal128

Todas as funções têm acesso a módulos globais incorporados que oferecem suporte ao trabalho comum de transformação, codificação e processamento de dados. Você pode acessar os módulos no código-fonte da sua função por meio de variáveis globais específicas para cada módulo.

Dica

Veja também:

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.
utils.jwt.encode()

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 JWT. Atlas App Services suporta os seguintes métodos de assinatura JWT:

Método de assinatura
Descrição
"HS256"
HMAC usando SHA-256
"HS384"
HMAC usando SHA-384
"HS512"
HMAC usando SHA-512
"RS256"
RSASA-PKCS1-v1_5 usando SHA-256
"RS384"
RSASA-PKCS1-v1_5 usando SHA-384
"RS512"
RSASA-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"
RSASA-PSS usando SHA-256 e MGF1 com SHA-256
"PS384"
RSASA-PSS usando SHA-384 e MGF1 com SHA-384
"PS512"
RSASA-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 App Services utiliza para assinar o token. O valor da strings depende do método de assinatura que você usa:

Métodos de assinatura
Descrição
"HS256"
"HS384"
"HS512"
Uma string aleatória.
"RS256"
"RS384"
"RS512"
Uma chave privada RSA-SHA no formato PKCS#8.
"PS256"
"PS384"
"PS512"
Uma chave privada RSA-PSS no formato PKCS#8.
"ES256"
"ES384"
"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.

Exemplo

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"
utils.jwt.decode()

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 App Services usa para verificar a assinatura de token. O valor da string depende do método de assinatura que você utiliza:

Métodos de assinatura
Descrição
"HS256"
"HS384"
"HS512"
A string aleatória que foi usada para assinar o token.
"RS256"
"RS384"
"RS512"
A chave pública RSA-SHA que corresponde à chave privada usada para assinar o token.
"PS256"
"PS384"
"PS512"
A chave pública RSA-PSS que corresponde à chave privada que foi usada para assinar o token.
"ES256"
"ES384"
"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.
Retorna: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>,
...
}
}

Exemplo

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.
utils.crypto.encrypt()

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:

  • Criptografia AES ("aes")

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:

Tipo de criptografia
chave de criptografia
AES
Uma string aleatória de 16 bytes, 24 bytes ou 32 bytes
Retorna:Um objeto Binary BSON que contém a string de texto criptografada com o tipo de criptografia e chave especificados.

Exemplo

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"
utils.crypto.decrypt()

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:

Tipo de criptografia
chave de criptografia
AES
Uma string aleatória de 16 bytes, 24 bytes ou 32 bytes
Retorna: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.

Exemplo

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

"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!"
utils.crypto.sign()

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

Formato de chave

Nem todas as chaves RSA usam o mesmo formato. Atlas App Services 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. Atlas App Services oferece suporte à assinatura de mensagens com os seguintes esquemas:

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

Exemplo

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="
utils.crypto.verify()

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

Formato de chave

Nem todas as chaves RSA usam o mesmo formato. Atlas App Services 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. Atlas App Services oferece suporte à verificação de assinaturas que usam os seguintes esquemas:

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

Exemplo

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
utils.crypto.hmac()

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.
Retorna:A assinatura da entrada, no formato especificado por output_format.

Exemplo

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="
utils.crypto.hash()

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.
Retorna:Um objeto BSON.Binary que codifica o valor de hash para a entrada fornecida gerada pela função de hash especificada.

Exemplo

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.
JSON.parse()

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.
Retorna:Um objeto JavaScript padrão gerado a partir da string JSON fornecida.

Exemplo

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"
}
JSON.stringify()

Serializa o objeto JavaScript fornecido para uma string JSON.

JSON.stringify(json: object): string
Parâmetro
Tipo
Descrição
object
Retorna:Uma representação de string do objeto JavaScript fornecido.

Exemplo

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.
EJSON.parse()

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.
Retorna:Uma representação de objeto JavaScript da string EJSON fornecida.

Exemplo

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"
}
}
}
EJSON.stringify()

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.
Retorna:Uma representação de string do objeto EJSON fornecido.

Exemplo

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.

BSON.ObjectId()

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.
Retorna:Um objeto BSON.ObjectId que codifica a string ObjectId especificada ou uma string ObjectId gerada se nenhuma tiver sido especificada.

Exemplo

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.

BSON.BSONRegExp()

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
Retorna:Um objeto BSON.BSONRegExp que codifica o padrão e os sinalizadores de expressão regular fornecidos.

Exemplo

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

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

BSON.Binary.fromHex()

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.
Retorna:Um objeto BSON.Binary que codifica a string hexadecimal fornecida.

Exemplo

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

Converte o objeto BSON.Binary em uma string hexadecimal.

BSON.Binary.prototype.toHex(): string
Retorna:Uma representação de string hexadecimal do objeto BSON.Binary fornecido.

Exemplo

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

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

Preenchimento de strings

A string codificada em base64 deve incluir um ou dois sinais de igual (=), chamados de "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.
Retorna:Um objeto BSON.Binary que codifica a string base64 fornecida.

Exemplo

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

Converte um objeto BSON.Binary em uma string base64.

BSON.Binary.prototype.toBase64(): string
Retorna:Uma representação de cadeia de caracteres base64 do objeto BSON.Binary .

Exemplo

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

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

BSON.Binary.prototype.text(): string
Retorna:Uma representação de string UTF-8 do objeto BSON.Binary fornecido.

Exemplo

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.

Exemplo

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

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

Exemplo

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

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

BSON.Int32()

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.
Retorna:Um objeto BSON.Int32 que codifica o número inteiro especificado. Retorna 0 se nenhum argumento for fornecido.

Exemplo

const int32 = BSON.Int32(42);

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

BSON.Long(low32, high32)
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.
Retorna: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

Exemplo

const long = BSON.Long(600206158, 342);

O tipo BSON.Double representa um número de ponto flutuante de 64 bits (8 bytes).

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)

Constrói um objeto BSON.Double a partir de um valor decimal de 64 bits.

BSON.Double(double: number): BSON.Double
Parâmetro
Tipo
Descrição
double
número
Um valor decimal de 64 bits.
Retorna:Um objeto BSON.Double que codifica o duplo especificado. Retorna 0 se nenhum argumento for fornecido.

Exemplo

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.

BSON.Decimal128.fromString(decimalString)

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".
Retorna:Um BSON.Decimal128 que codifica o valor decimal fornecido.

Exemplo

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

Voltar

Contexto