db.hello.ensureIndex({"array1":1, "array2":1})
MongoDB不允许这样做,因为他们说“它可能会失控”。然而,我知道我的数组永远不会超过长度3。如何黑客式地使MongoDB允许同时索引多个数组?使用复合索引时,任意文档中最多一个被索引的值可以是一个数组。因此,如果我们在{a:1, b:1}上建立索引,则以下文档都是可以的:
{a:[1,2], b:1}和{a:1, b:[1,2]}。
但是,以下文档将无法插入,并显示错误消息“cannot index parallel arrays”:
{a:[1,2], b:[1,2]}
索引平行数组的问题在于,复合键的笛卡尔积中的每个值都必须被索引,这可能会很快失控。