O método EJSON.parse() converte valores de string para JSON.
Sintaxe
O método EJSON.parse() usa uma string como entrada e um modificador opcional que controla o formato de saÃda.
EJSON.parse(string, [options])
Campos de comando
O método EJSON.parse() utiliza estes campos:
Campo | Tipo | necessidade | Descrição | ||||||
|---|---|---|---|---|---|---|---|---|---|
| string | Obrigatório | A string | ||||||
| string | Opcional | Modifica tipos de saÃda . A única opção é
|
Comportamento
Você pode chamar EJSON.parse() de dentro de uma sessão de mongosh interativa ou da linha de comando do sistema usando --eval.
Chame EJSON.parse() de uma sessão interativa:
EJSON.parse(string)
Chame EJSON.parse() a partir da linha de comando do sistema:
mongosh --eval "EJSON.parse(string)"
Exemplos
Para testar estes exemplos, primeiro crie a collection sales :
db.sales.insertMany( [ { custId: 345, purchaseDate: ISODate("2023-07-04"), quantity: 4, cost: Decimal128("100.60"), }, { custId: 346, purchaseDate: ISODate("2023-07-12"), quantity: 3, cost: Decimal128("175.45"), }, { custId: 486, purchaseDate: ISODate("2023-08-01"), quantity: 9, cost: Decimal128("200.53"), }, ] )
Formatar Entrada com EJSON.parse()
EJSON.parse() aceita uma string como entrada. Para este exemplo, use o EJSON.stringify() para exportar a collection sales como uma string.
let salesCollection = EJSON.stringify( db.sales.find().toArray() )
Use EJSON.parse() para formatar a string para métodos como que esperam pares db.collection.insertMany() JSON:
db.salesRestored.insertMany( EJSON.parse( salesCollection ) )
EJSON.parse()formata os valores emsalesCollectioncomo pares JSON.db.salesRestored.insertMany()utiliza os pares de JSON para criar asalesRestoredcoleção.
Use EJSON.parse() da linha de comando
Para importar dados de string de uma fonte externa, como um arquivo ou uma chamada de API, use EJSON.parse() com o método mongosh --eval .
Para este exemplo, salve a coleção sales como um arquivo.
let salesCollection = EJSON.stringify( db.sales.find().toArray() ) fs.writeFileSync( 'sales.json', salesCollection )
O código cria um arquivo no seu sistema local chamado sales.json. Para importar o arquivo e criar uma nova collection, saia do mongosh e execute uma operação do --eval a partir da linha de comando.
# Note: This example is formatted to fit on the page. mongosh --quiet \ --eval "db.salesFromFile.insertMany( \ EJSON.parse( fs.readFileSync( 'sales.json', 'utf8' ) ) )"
EJSON.parse()usa uma string como entrada. Este exemplo utilizafs.readFileSync()para ler o arquivosale.jsoncomo uma string.EJSON.parse()formata a string de entrada como pares JSON.db.salesFromFile.insertMany()cria a collectionsalesFromFilea partir dos pares JSON.
Aviso
Validar entrada não confiável antes de converter JSON em BSON
Se você converter uma string JSON em BSON e utilizar o BSON resultante em uma query, atualização ou comando, um invasor poderá injetar operadores ou valores de campo inesperados que alteram o significado da operação. Esse risco é maior quando o JSON se origina de um usuário, de uma solicitação de API ou de outra fonte não confiável.
Para saber mais sobre como validar a entrada antes da conversão, consulte Validar entrada não confiável antes de converter JSON em BSON.
Saiba mais
Documentação EJSON
Rede de desenvolvedores Mozilla JSON.parse documentação