我当前的文档具有与以下类似的结构:
{
'name': 'Sum Guy',
'age': 31,
'scores': {'blue': 5, 'yellow': 9, 'red': 2}
}
我似乎找不到合适的映射或排序方式。
我想要的结果是“显示所有 30 岁以上的人,并按他们的‘蓝色’分数对他们进行排序”
嵌套文档似乎总是数组,而不仅仅是一个普通的哈希。
有任何想法吗?
我当前的文档具有与以下类似的结构:
{
'name': 'Sum Guy',
'age': 31,
'scores': {'blue': 5, 'yellow': 9, 'red': 2}
}
我似乎找不到合适的映射或排序方式。
我想要的结果是“显示所有 30 岁以上的人,并按他们的‘蓝色’分数对他们进行排序”
嵌套文档似乎总是数组,而不仅仅是一个普通的哈希。
有任何想法吗?
如果那是您的文档结构,则不需要嵌套文档。你可以只排序scores.blue
。
嵌套文档的重点是如果您有一个对象数组。如果你的结构是这样的:
{
'name' : 'Sum Guy',
'age' : 31,
'scores' : [{
'name' : 'blue',
'count' : 5
}, {
'name' : 'yellow',
'count' : 9
}
}
]
}
然后,您将需要“分数”成为嵌套类型。当你有一个这样的数组时,名称和计数的值将在顶层展平。然后搜索“30 岁以上的人,其中蓝色大于 5”不会返回正确的结果,除非您将其定义为嵌套,然后数组中的每个对象实际上都是一个单独的文档,因此保留了上下文。