Mongoid,如何通过references_one关联(以及后续关联)来order_by?

2024-01-27

简单模型:

class hat
  embedded_in :owner
  field :color
end

class owner
  embedds_one :hat
  referenced_in :house
  field :name
end

class house
  references_one :owner
  field :number
end

简而言之,我们有与所有者相关的房屋集合,并且所有者可以有一顶彩色帽子。

我可以简单地按房屋号码对房屋进行排序:

House.all.order_by( [[ :number, :asc ]])

但我想要的是以主人的名字订购房子,理想情况下我想写:

House.all.order_by( [[ :'owner.name', :asc ]])

但它不起作用......

更进一步,我希望能够根据房主帽子的颜色对房屋进行排序

House.all.order_by( [[ :'owner.hat.color', :asc ]])

如果可能的话,知道如何在不重写所有内容的情况下实现这一目标:)

Thanks

ALex


点符号仅适用于嵌入文档,但您有 2 个集合 - 房屋和所有者。 在 MongoDB 的所有者记录之一中,您只有字段 house_id,在房屋记录之一中,您与所有者模型没有任何连接。 因此,唯一的方法是获取所有房屋,然后使用 Enumerable#sort 对获得的集合进行排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongoid,如何通过references_one关联(以及后续关联)来order_by? 的相关文章

随机推荐

  • Android通知大图标,有没有办法去掉右下角的小图标?

    我有一条显示大图标的通知 有什么方法可以从此视图中删除蜂窝及以上设备中的较小图标 显然还是保留了顶部状态栏的小图标 NotificationCompat Builder builder new NotificationCompat Buil
  • 如何格式化Swagger 2.0文本描述?

    我想格式化我的 Swagger API 描述 以便它们不是简单的文本段落 最好 我想添加一张小桌子 我在 Swagger 描述中没有找到有关文本格式的在线参考 如果我启动招摇编辑器 http editor swagger io 然后打开 I
  • 如何创建动态过滤器?

    我有一张装有设备的桌子 每个设备都有维护级别的日期 用户可以选择维护级别 因此 我应该针对所选维护级别的每个组合调整我的 SQLAlchemy 例如 SELECT WHERE equipment IN AND m level1 DATE A
  • 如何解决“资源要求请求启用 CORS…资源已被阻止,因为无法强制执行完整性”错误

    我在项目中使用引导图标 这给了我错误 子资源完整性 资源 http maxcdn bootstrapcdn com bootstrap 3 3 6 css bootstrap min css http maxcdn bootstrapcdn
  • 生成加起来等于某个数字的所有唯一数字组合

    我正在编写一个程序来尝试解决数学问题 我需要生成一个唯一的列表 其中包含所有与另一个数字相加的数字 例如 所有 4 个数字加起来为 5 的唯一组合是 5 0 0 0 4 1 0 0 3 2 0 0 3 1 1 0 2 2 1 0 2 1 1
  • 程序控制流程未按预期工作

    这是一个问题C 程序控制流程不符合预期 它要求输入字符 in 但未能要求输入字符 x int foo int main int argc const char argv foo return 0 int foo char in char x
  • 如何覆盖odoo new api中字段的默认函数

    我有一个调用函数来获取默认值的字段 在模块project forecast中 def default user id self return self env user if default user id not in self env
  • 如何从Python中的十六进制字符串中删除'\x'?

    我正在读一本wavPython 中的音频文件使用wave模块 这readframe 该库中的函数以十六进制字符串形式返回帧 我想删除 x这个字符串的 但是translate 功能无法按我想要的方式工作 gt gt gt input wave
  • Keras 中预测的流输出

    我在 Keras 中有一个 LSTM 我正在训练它来预测时间序列数据 我希望网络在每个时间步上输出预测 因为它将每 15 秒收到一个新输入 所以我正在努力解决的是训练它的正确方法 以便它在接收 x 0 x 1 x t 作为输入流时将输出 h
  • Javac 调试打开和关闭之间有性能差异吗?

    如果我打开使用 Javac 生成调试信息 则类文件会增大 20 25 这对运行 Java 程序有任何性能影响吗 如果是的话 什么条件以及多少 我预计对加载类会有一点影响 因为文件较大 但这应该是最小的 在任何语言中 调试信息都是元信息 它本
  • 如何将 HTML 转换为 XHTML? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要将 HTML 文档转换为有效的 XML 最好是 XHTML 最好的方法是什么 有人知道工具包 库 样本 任何可以帮助我完成任务的东西
  • 每次查询后关闭 MySQL 连接

    在挖掘一位我敬佩的前同事整理的一些旧代码时 我注意到每次查询后他们都会关闭 MySQL 服务器的连接 这看起来有点奇怪 因为我总是在页面末尾关闭它 并且看到大多数人都这样做 那么问题来了 这是 PHP MySQL 中最好的想法吗 无论如何
  • 使用 Bash 获取一对 HTML 标签之间的内容

    我需要使用 bash 脚本获取一对给定标签之间的 HTML 内容 作为示例 具有以下 HTML 代码 text div text2 div text3 div div 使用 bash 命令 脚本 给定body标签 我们会得到 text di
  • 在 Windows 上分配开始失败之前检测内存运行不足

    我们有一个应用程序可能会分配大量小对象 取决于用户输入 有时应用程序会耗尽内存并导致崩溃 然而 如果我们知道内存分配变得紧张 那么一些优先级较低的对象可能会被销毁 从而允许我们优雅地降低用户结果 在调用 new 实际失败之前检测进程内存不足
  • 从 Metro 应用程序检测桌面可用性(检测 ARM、检测 Windows RT 系统)

    这是一个相关的问题在 WinRT Metro 应用程序 C 中获取操作系统版本 https stackoverflow com questions 10125324 get os version in winrt metro app c s
  • 如何在c#中从arraylist中检索对象

    如何在 C 中从 arraylist 中检索对象及其成员 你的意思是这样吗 ArrayList list new ArrayList YourObject myObject new YourObject list Add myObject
  • AJAX、子域和 SSL

    我有一个网站 foo com 它向 bar foo com 发出 ajax 请求 这行得通吗 另外 如果 foo 是安全连接 https 那么 bar foo com 也需要是 https 吗 这两个站点可以使用不同的证书吗 使用纯 htt
  • 在 cygwin 中运行简单的 map-reduce hadoop 示例时出现问题

    我只是想在独立模式下运行 64 位 Windows 7 的笔记本电脑上运行 Hadoop 我已将 Cygwin 1 7 安装在默认文件夹 c cygwin 中 我在文件夹 c jdk1 7 0 03 中有最新的 JDK 并设置了 JAVA
  • 如何使用Antlr实现函数调用,以便在定义之前就可以调用它?

    一旦构建了 AST 实现树遍历器以便可以按任意顺序定义和调用函数的最佳方法是什么 例如 这在 PHP 中是有效的 我猜想一定有第二遍 或者树转换 但我在这个主题上找不到任何有趣的东西 这个问题可能不是 Antlr 特有的问题 但如果你能给我
  • Mongoid,如何通过references_one关联(以及后续关联)来order_by?

    简单模型 class hat embedded in owner field color end class owner embedds one hat referenced in house field name end class ho