1

我有以下对象:

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 发生了什么,这与索引有关吗?

4

0 回答 0