Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Mongoid
/

Ver dados MongoDB - Sinatra

1

No nível raiz do seu projeto, crie um arquivo chamado app.rb. Cole o seguinte conteúdo no arquivo app.rb para carregar as gems necessárias e seu arquivo de configuração:

require 'sinatra'
require 'mongoid'
Mongoid.load!(File.join(File.dirname(__FILE__), 'config', 'mongoid.yml'))
2

No arquivo app.rb, crie um modelo chamado Restaurant para representar dados da coleção de amostra restaurants no banco de dados sample_restaurants :

class Restaurant
include Mongoid::Document
field :name, type: String
field :cuisine, type: String
field :borough, type: String
end
3

Crie uma visualização para exibir seus dados de uma forma especificada utilizando HTML e Ruby.

No nível raiz do seu projeto, crie um diretório chamado views. Em seguida, crie um arquivo chamado list_restaurants.erb. Cole o seguinte código no arquivo list_restaurants.erb:

<!DOCTYPE html>
<html>
<head>
<title>Restaurants List</title>
</head>
<body>
<h1>Restaurants List</h1>
<table border="1">
<tr>
<th>Name</th>
<th>Cuisine</th>
<th>Borough</th>
</tr>
<% @restaurants.each do |restaurant| %>
<tr>
<td><%= restaurant.name %></td>
<td><%= restaurant.cuisine %></td>
<td><%= restaurant.borough %></td>
</tr>
<% end %>
</table>
</body>
</html>
4

No arquivo app.rb, adicione uma rota get chamada list_restaurants, conforme mostrado no código a seguir:

get '/list_restaurants' do
@restaurants = Restaurant
.where(name: /earth/i)
erb :list_restaurants
end

Esta rota recupera Restaurant documentos nos quais o valor do campo name contém a string "earth". A rota utiliza a visualização list_restaurants para renderizar os resultados.

5

Em vez de gerar uma visualização para renderizar seus resultados, você pode utilizar o método to_json para exibir seus resultados no formato JSON.

Substitua a rota list_restaurants no arquivo app.rb pelo seguinte código para retornar os resultados como documentos JSON:

get '/list_restaurants' do
restaurants = Restaurant
.where(name: /earth/i)
restaurants.to_json
end
6

Execute o seguinte comando a partir do diretório raiz do aplicação para iniciar seu servidor web Ruby :

bundle exec ruby app.rb

Depois que o servidor é iniciado, ele gera a seguinte mensagem indicando que o aplicação está sendo executado na porta 4567:

[2024-10-01 12:36:49] INFO WEBrick 1.8.2
[2024-10-01 12:36:49] INFO ruby 3.2.5 (2024-07-26) [arm64-darwin23]
== Sinatra (v4.0.0) has taken the stage on 4567 for development with backup from WEBrick
[2024-10-01 12:36:49] INFO WEBrick::HTTPServer#start: pid=79176 port=4567
7

Abra a URL http://localhost:4567/list_restaurants no seu navegador da web. A página mostra uma lista de restaurantes e detalhes sobre cada um deles:

A lista renderizada de restaurantes

Observação

Se você tiver problemas, peça ajuda nos Fóruns da MongoDB Community ou envie comentários usando o Feedback botão no canto superior direito da página.

Voltar

Configurar sua conexão