1

我当前的文档具有与以下类似的结构:

{
  'name': 'Sum Guy',
  'age': 31,
  'scores': {'blue': 5, 'yellow': 9, 'red': 2}
}

我似乎找不到合适的映射或排序方式。
我想要的结果是“显示所有 30 岁以上的人,并按他们的‘蓝色’分数对他们进行排序”

嵌套文档似乎总是数组,而不仅仅是一个普通的哈希。

有任何想法吗?

4

1 回答 1

2

如果那是您的文档结构,则不需要嵌套文档。你可以只排序scores.blue

嵌套文档的重点如果您有一个对象数组。如果你的结构是这样的:

{
 'name' : 'Sum Guy',
 'age' : 31,
 'scores' : [{
   'name' : 'blue',
   'count' : 5
  }, {
   'name' : 'yellow',
   'count' : 9
  }
 }
 ]
 }

然后,您将需要“分数”成为嵌套类型。当你有一个这样的数组时,名称和计数的值将在顶层展平。然后搜索“30 岁以上的人,其中蓝色大于 5”不会返回正确的结果,除非您将其定义为嵌套,然后数组中的每个对象实际上都是一个单独的文档,因此保留了上下文。

于 2013-08-08T15:38:19.150 回答