Projeção
Nesta página
Por padrão, as queries no MongoDB retornam todos os campos em documentos correspondentes. Para limitar a quantidade de dados que o MongoDB envia para aplicativos, você pode incluir um documento deprojeção na operação de query.
documento de projeção
O documento de projeção limita os campos para retornar para todos os documentos correspondentes. O documento de projeção pode especificar a inclusão de campos ou a exclusão de campos e tem o seguinte formato:
{ 'projection': { field1: <value>, field2: <value> ... } }
<value>
pode ser 0
(ou false
) para excluir o campo ou 1
(ou true
) para incluí-lo. Com exceção do campo _id
, você não pode ter inclusões e exclusões no mesmo documento de projeção.
Exemplos
O seguinte exemplo de código utiliza o conjunto de dados de amostra restaurants
.
Para retornar somente os campos name
, cuisine
e _id
para documentos que correspondam ao filtro de query, inclua explicitamente os campos name
e cuisine
no documento de projeção. O campo _id
é incluído automaticamente, a menos que seja especificamente excluído.
client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') collection = client[:restaurants] collection.find({}, { 'projection' => { 'name' => 1, 'cuisine' => 1 } }).limit(5).each do |doc| p doc end
Para retornar name
e cuisine
, mas excluir todos os outros campos, incluindo _id
, use o seguinte documento de projeção:
{ 'projection' => { 'name' => 1, 'cuisine' => 1, '_id' => 0 } }
Para retornar todos os campos, exceto o campo de endereço, use o seguinte:
{ 'projection' => { 'address' => 0 } }