标题是self 解释的.但是,让我详细说明一下.

#1) 我收集了大量关于 map 的信息.一张 map 嵌入了很多分幅,每个分幅都引用一个地形集合、一个用户集合,并包含一些其他信息.因此,如果我从 map 上获得所有的瓷砖,我将拥有一个非常大的 struct .但是,我想缓存一个 struct ,该 struct 包含一个仅包含地形信息的矩阵.为了做到这一点,我 Select 了所有的瓷砖(以及它们所有不需要的信息),并只使用地形字段.如何仅 Select Mongoid上的地形字段?我试着用select操作了好几种方法,但没有成功..(顺便说一句,为了举例说明,我使用"Map.first.tiles"行访问tiles数组).

#2) 嗯..我已经来了,为什么不问问这个呢.我真的应该在我的模型上使用场的倒数吗?我没有在任何地方使用它,而且似乎一切都很好.我不明白为什么需要这样做,因为决定把它们放在哪里,以及它们是什么的反义词,基本上是直截了当的.

提前谢谢.

推荐答案

通常,要在mongoid查询中仅 Select 一个或多个属性,请执行以下操作:

Map.only(:name).all

除非Mongoid需要帮助了解类,否则我不会只为逆_而烦恼.一般来说,不需要.

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

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

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

Mongodb相关问答推荐

从两个相连的文件中获取电话和邮箱的渠道是什么?

在Mongoose中对嵌套文档设置时间戳,但不对父文档设置时间戳

为什么 mongoose 在 mongodb 中找不到我的数据

无法配置数据源:未指定url属性,无法为 MongoDb 配置嵌入数据源

使用mongo'db.Decode(&dto)映射一个嵌套的 struct

没有mongoose 的 Express 和 MongoDB

当属性确实存在时,为什么mongoose模型的 hasOwnProperty 返回 false?

MongoDB .NET 未在 upsert 上生成 _id

通过 Spring Boot 应用程序访问 mongodb 时的身份验证错误

将数据插入 MongoDB - 没有错误,没有插入

spring-data-mongo - 可选查询参数?

在 Mongoose 中填写所有必填字段

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

带有排序功能的mongoose findOne

Mongodb:为什么 show dbs 不显示我的数据库?

如何在 MongoDB Map-reduce 映射函数中使用变量

Mongo Schema-less集合和 C#

如何从 Mongoose 模型对象中获取集合名称

MongoDB 的 MMAPV1、WiredTiger 或 In-Memory StorageEngine 如何 Select ?

如何使用 mongodb-java-driver 进行 upsert