Ruby 使用MongoDB对嵌套字段进行排序

Ruby 使用MongoDB对嵌套字段进行排序,ruby,mongodb,Ruby,Mongodb,我将数据存储在这样的集合中: { "_id" : ObjectId("..."), "content" : [ ["a","b",7], ["a","b",19], ["c","c",3], ["d","a",5] ] } 我想从集合中提取一条记录(这很简单),但我想使用每个数组的第3列返回按内容排序的数据。也就是说,我想取回记录(如上所示),但要对内容进行排序,以便: "content" : [

我将数据存储在这样的集合中:

{
    "_id" : ObjectId("..."),
    "content" : [
        ["a","b",7],
        ["a","b",19],
        ["c","c",3],
        ["d","a",5]
    ]
}
我想从集合中提取一条记录(这很简单),但我想使用每个数组的第3列返回按内容排序的数据。也就是说,我想取回记录(如上所示),但要对内容进行排序,以便:

    "content" : [
        ["c","c",3],
        ["d","a",5],
        ["a","b",7],
        ["a","b",19]
    ]
这是可能的,还是我只需要获取项目,然后在服务器端对其进行排序

注意:我正在使用Ruby mongo驱动程序,例如:

hash = {
    "_id" => "id",
    "content" => [
        ["a","b",7],
        ["a","b",19],
        ["c","c",3],
        ["d","a",5]
    ]
}
hash["content"].sort!{|a,b| a.last <=> b.last}
p hash # => {"_id"=>"1", "content"=>[["c", "c", 3], ["d", "a", 5], ["a", "b", 7], ["a", "b", 19]]}
hash={
“_id”=>“id”,
“内容”=>[
[“a”、“b”、7],
[“a”,“b”,19],
[“c”,“c”,3],
[“d”、“a”、5]
]
}
散列[“内容”]。排序!{| a,b | a.last b.last}
p hash#=>{“\u id”=>“1”,“content”=>[[“c”,“c”,3],“d”,“a”,5],“a”,“b”,7],“a”,“b”,19]}

我也意识到,拥有这个嵌套数组比仅仅拥有一个对象数组更痛苦,因此我将根据自己的情况改变这种做法。不过也有一些关于支持嵌套位置运算符的讨论:

您需要在客户端获取和排序。MongoDB不会对嵌套对象进行排序。如果您希望MongoDB对其进行排序,则必须将“内容”数据分解为自己的集合