在mongoid上插入多个和/或嵌套字段

use*_*476 5 ruby mongodb mongoid moped

我在mongodb中有以下查询db,它返回我需要的内容:

 db.collection.find({field1: 2801394}, {name: 1, field2: 1, _id: 1, "field3.2801394": 1})
Run Code Online (Sandbox Code Playgroud)

注意字段3是散列,此处使用的密钥与字段1中的值相同.

如何将此查询转换为mongoid?这里有两个主要问题,我无法在线找到任何一个单独的问题:

  1. 我无法弄清楚同时拔出两个字段的语法
  2. 我找不到拔除嵌套字段的语法.

谢谢!

Dav*_*ave 7

要过滤/投射一个或多个字段,您可以使用http://mongoid.org/en/origin/docs/options.html上的 Queryable.only .

该页面上给出的示例:

queryable.only(:name, :age)
Run Code Online (Sandbox Code Playgroud)

对于嵌套字段,您可以在参数中使用字符串而不是符号:

queryable.only(:name, :field2, :_id, 'field3.2801394')
Run Code Online (Sandbox Code Playgroud)