Docs 菜单

Docs 主页开发应用程序MongoDB 驱动程序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 } }
←  批量写入聚合(Aggregation) →

在此页面上