【问题标题】:How do I sort a MongoDB collection by a field in an embedded document using Mongoid?如何使用 Mongoid 按嵌入文档中的字段对 MongoDB 集合进行排序?
【发布时间】:2011-03-01 16:43:20
【问题描述】:

我想使用 Mongoid 运行这个查询:

db.users.find().sort({'users.roles.name':1})

在 Mongoid 中会是什么样子?或者也许有一种简单的方法让 Mongoid 只执行该自定义查询?

【问题讨论】:

    标签: mongodb mongoid


    【解决方案1】:

    首先你能回答一个简单的问题:如何按数组对文档进行排序?是的,我也不知道。。

    我想您可以使用位置运算符按​​特定角色排序:

    db.users.find().sort({'roles.0.name':1})
    

    但我不确定,也不能正确地测试它,而且 mb 这不是你所需要的。无论如何,您可以测试并返回结果,否则我明天会弄清楚。

    【讨论】:

    • 粗心的错误,我确实打算对集合中的第一个角色进行排序。谢谢
    • Paul Elliot 的回答更好。
    【解决方案2】:

    User.asc("roles.name") 应该为你做。

    【讨论】:

      【解决方案3】:

      这将起作用:

      db.users.find().sort("{\"roles\":{\"name\":1}}");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-11
        • 2020-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多