文档菜单
文档首页
/ / /
Ruby MongoDB 驱动
/

投影

在本页

  • 投影文档
  • 示例

默认情况下,MongoDB 的查询返回所有匹配文档的字段。为了限制 MongoDB 发送到应用程序的数据量,您可以在查询操作中包含一个投影 文档。

投影文档限制了返回所有匹配文档的字段。投影文档可以指定包含或排除字段,其形式如下

{ 'projection': { field1: <value>, field2: <value> ... } }

<value>可以是0(或false)来排除该字段,或者1(或true)来包含它。除了_id字段外,您不能在同一投影文档中同时包含和排除。

以下代码示例使用了restaurants样本数据集。

要返回匹配查询筛选器的文档的namecuisine_id字段,明确在投影文档中包含namecuisine字段。除非特别排除,否则_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

要返回namecuisine但排除所有其他字段(包括_id),请使用以下投影文档

{ 'projection' => { 'name' => 1, 'cuisine' => 1, '_id' => 0 } }

要返回所有字段除了地址字段,请使用以下

{ 'projection' => { 'address' => 0 } }

返回

批量写入