ruby-on-rails – 在RoR3上的Mongoid:1)如何返回查询的特定字段? 2)需要什么inverse_of?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在RoR3上的Mongoid:1)如何返回查询的特定字段? 2)需要什么inverse_of?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
那么标题是自我说明的.但是,让我更好一点.
首先,我使用Mongoid,一个Gem使用MongoDB与rails应用程序.

#1)我有一个大集合,它有关于地图的信息.地图嵌入了大量的图块,每个图块引用地形集合,用户集合,还有一些其他信息.因此,如果我从地图获取所有的图块,我将会有一个非常大的结构.但是,我想缓存一个只包含地形信息的矩阵的结构.为了做到这一点,我选择所有的瓷砖(因此,它们所有不需要的信息),并且只使用地形场.如何只选择Mongoid的地形字段?我尝试用几种方式进行操作,但是我没有设法做到这一点(顺便说一下,为了举例说明,我使用“Map.first.tiles”行访问tiles数组).

#2)嗯..我已经在这里了,所以,为什么不问这个问题.我应该真的在我的模型上使用inverse_of字段吗?我没有在任何地方使用它,一切似乎都是完美的.我不明白为什么需要它,因为它是很直接的确定放在哪里,它们是什么相反的.

提前致谢.
费尔南多.

解决方法

一般来说,只能在一个mongoid查询中选择一个或多个属性
Map.only(:name).all

我不会打扰inverse_only,除了Mongoid需要帮助找出课程.一般来说,不需要.

如果您只需返回嵌入式文档中的某些属性,则需要使用完整路径:

Map.first.tiles
 => [#<Tile _id: 4e1e486042f5bc06e7000002,name: "Earth",distance: 34>]

Map.only("tiles.name").first.tiles
 => [#<Tile _id: 4e1e488742f5bc06e7000003,distance: nil>]

猜你在找的Ruby相关文章