加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在RoR3上的Mongoid:1)如何返回查询的特定字段

发布时间:2020-12-16 20:40:37 所属栏目:百科 来源:网络整理
导读:那么标题是自我说明的.但是,让我更好一点. 首先,我使用Mongoid,一个Gem使用MongoDB与rails应用程序. #1)我有一个大集合,它有关于地图的信息.地图嵌入了大量的图块,每个图块引用地形集合,用户集合,还有一些其他信息.因此,如果我从地图获取所有的图块,我将会有
那么标题是自我说明的.但是,让我更好一点.
首先,我使用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>]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读