Menu Docs
Página inicial do Docs
/ / /
Ruby Driver
/

Insira documentos

Neste guia, você aprenderá a usar o driver Ruby para adicionar documentos a uma collection do MongoDB realizando operações de inserção.

Uma operação de inserção insere um ou mais documentos em uma coleção MongoDB . Você pode executar uma operação de inserção usando os seguintes métodos:

  • insert_one para inserir um único documento

  • insert_many para inserir um ou mais documentos

Os exemplos neste guia utilizam a restaurants coleção do sample_restaurants no banco de dados do a partir dos conjuntos de dados de amostra do Atlas . Para acessar essa coleção a partir do seu aplicação Ruby, crie um Mongo::Client objeto que se conecte a um Atlas cluster e atribua os seguintes valores às suas variáveis database collection e:

database = client.use('sample_restaurants')
collection = database[:restaurants]

Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

Em uma coleção MongoDB, cada documento deve conter um campo _id com um valor de campo único.

O MongoDB permite gerenciar este campo de duas maneiras:

  • Defina o campo _id para cada documento por conta própria, garantindo que cada valor seja único.

  • Permita que o acionador gere automaticamente valores de BSON::ObjectId únicos para cada campo de documento _id .

A menos que você possa garantir exclusividade, recomendamos deixar o driver gerar automaticamente os valores de _id .

Observação

Os valores duplicados de _id violam restrições de índice único , o que faz com que o driver retorne um erro.

Para saber mais sobre o campo _id, consulte o guia Índices únicos no manual do MongoDB Server .

Para saber mais sobre a estrutura e as regras de documentos, consulte o guia Documentos no manual do MongoDB Server .

Para adicionar um único documento a uma coleção MongoDB , chame o método insert_one e passe o documento que você deseja inserir.

O exemplo a seguir insere um documento na coleção restaurants :

document = { name: 'Neighborhood Bar & Grill', borough: 'Queens' }
collection.insert_one(document)

Para adicionar vários documentos a uma coleção MongoDB , chame o método insert_many e passe uma lista de documentos que você deseja inserir.

O exemplo a seguir insere dois documentos na collection restaurants :

documents = [
{ name: 'Metropolitan Cafe', borough: 'Queens' },
{ name: 'Yankee Bistro', borough: 'Bronx' }
]
collection.insert_many(documents)

Você pode passar um objeto Hash como parâmetro para o método insert_one para definir opções para configurar a operação de inserção. Se você não especificar nenhuma opção, o driver executará a operação de inserção com as configurações padrão.

A tabela seguinte descreve as opções que você pode definir para configurar a operação insert_one:

Opção
Descrição

bypass_document_validation

Instructs the driver whether to ignore document-level validation. For more information, see Schema Validation in the MongoDB Server manual.
Defaults to false.

comment

Sets a comment to attach to the operation. For more information, see the insert command fields guide in the MongoDB Server manual.

session

Sets the session to use for the operation. To learn more about sessions, see Client Sessions and Causal Consistency Guarantees in the MongoDB Server manual.

write_concern

Sets the write concern for the operation. For more information, see the Write Concern guide in the MongoDB Server manual.

Você pode definir as configurações anteriores no método insert_many passando um Hash como parâmetro para a chamada do método. Você também pode usar a opção ordered para especificar a ordem em que o driver insere documentos no MongoDB.

O código a seguir usa o método insert_many para inserir três novos documentos em uma coleção. Como a opção bypass_document_validation está ativada, essa operação de inserção ignora a validação em nível de documento.

documents = [
{ name: 'Cloudy Day', borough: 'Brooklyn' },
{ name: 'Squall or Shine', borough: 'Staten Island' }
{ name: 'Rose Field', borough: 'Queens' }
]
options = { bypass_document_validation: true }
collection.insert_many(documents, options)

Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API:

Voltar

Gravar dados

Nesta página