投影
默认情况下,MongoDB 的查询返回所有匹配文档的字段。为了限制 MongoDB 发送到应用程序的数据量,您可以在查询操作中包含一个投影 文档。
投影文档
投影文档限制了返回所有匹配文档的字段。投影文档可以指定包含或排除字段,其形式如下
{ 'projection': { field1: <value>, field2: <value> ... } }
<value>可以是0(或false)来排除该字段,或者1(或true)来包含它。除了_id字段外,您不能在同一投影文档中同时包含和排除。
示例
以下代码示例使用了restaurants样本数据集。
要返回匹配查询筛选器的文档的name、cuisine和_id字段,明确在投影文档中包含name和cuisine字段。除非特别排除,否则_id字段会自动包含。
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
要返回name和cuisine但排除所有其他字段(包括_id),请使用以下投影文档
{ 'projection' => { 'name' => 1, 'cuisine' => 1, '_id' => 0 } }
要返回所有字段除了地址字段,请使用以下
{ 'projection' => { 'address' => 0 } }