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 db.collection.insertMany() que esperam pares JSON:
db.salesRestored.insertMany( EJSON.parse( salesCollection ) )EJSON.parse()formata os valores emsalesCollectioncomo pares JSON.db.salesRestored.insertMany()utiliza os pares JSON para criar a coleçãosalesRestored.
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
Valide entradas não confiáveis antes de converter JSON em BSON
Se você converter uma string JSON para BSON e usar o BSON resultante em uma query, atualizar ou comando, um invasor pode 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, uma solicitação de API ou outra fonte não confiável.
Para aprender 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 do JSON.parse da rede de desenvolvedores Mozilla