TIM*_*MEX 10 database indexing mongodb
db.hello.ensureIndex({"array1":1, "array2":1})
Run Code Online (Sandbox Code Playgroud)
MongoDB不允许这样做,因为他们说"它可能会失控".但是,我知道我的数组永远不会超过3的长度.我怎样才能破解MongoDB以允许一次索引多个数组?
使用复合索引时,任何文档中的索引值中最多只能有一个数组.因此,如果我们在{a:1,b:1}上有索引,则以下文档都可以:
{a:[1,2],b:1} {a:1,b:[1,2]}但是,此文档将无法插入,并显示错误消息"无法索引并行数组":
{a:[1,2],b:[1,2]}索引并行数组的问题是复合键的笛卡尔积中的每个值都必须被索引,这可能会非常快速地失控.
您问题的简短答案是:你不知道 唯一可用的选择是将每个唯一对存储为单个数组元素。因此,而不是:
{a:[1,2], b:[8,9]}
Run Code Online (Sandbox Code Playgroud)
你存储
{ab:[[1,8], [1,9], [2,8], [2,9]]}
Run Code Online (Sandbox Code Playgroud)
显然,这有一些缺点,因此,这是否是一个适当的解决方法,实际上取决于您的特定用例。我同意,但是mongo不应仅出于白痴证明而拒绝多个数组索引。对于小/低基数数组,这是一个很好的功能。
| 归档时间: |
|
| 查看次数: |
8566 次 |
| 最近记录: |