我有以下对象:
class Node
include Mongoid::Document
include Mongoid::Tree
field :path, type: Array
end
该path
数组用于存储树中的全局位置,因此根节点将存储其位置:{ path: [0] }
而子节点将存储其位置和根位置,如下所示:{ path: [0, 0] }
当我查询它们Node.asc(:path)
然后询问路径时,我得到如下信息:
[[3, 0, 0],
[7, 0], # WTF?
[3, 0],
[2, 0, 1],
[2, 0],
[2, 0, 0, 0],
[0],
…
]
但是,当我在 Ruby 中进行排序时,我得到了正确的结果:
[[0],
[2],
[2, 0],
[2, 0, 0],
[2, 0, 0, 0],
[2, 0, 1],
[2, 0, 1, 0],
[3],
…
]
MongoDB 发生了什么,这与索引有关吗?