gpt4 book ai didi

mongodb - 如何在 MongoDB 中索引两个数组?

转载 作者:太空狗 更新时间:2023-10-30 01:44:07 27 4
gpt4 key购买 nike

db.hello.ensureIndex({"array1":1, "array2":1})

MongoDB 不允许这样做,因为他们说“它会失控”。但是,我知道我的数组的长度永远不会超过 3。我如何破解 MongoDB 以允许一次索引多个数组?

When using a compound index, at most one of indexed values in any document can be an array. So if we have an index on {a: 1, b: 1}, the following documents are both fine:

{a: [1, 2], b: 1} {a: 1, b: [1, 2]} This document, however, will fail to be inserted, with an error message "cannot index parallel arrays":

{a: [1, 2], b: [1, 2]} The problem with indexing parallel arrays is that each value in the cartesian product of the compound keys would have to be indexed, which can get out of hand very quickly.

最佳答案

您的问题的简短答案是;你没有。您唯一可用的选择是将每个唯一对存储为单个数组元素。所以而不是:

{a:[1,2], b:[8,9]}

你存储

{ab:[[1,8], [1,9], [2,8], [2,9]]}

显然这有一些缺点,因此这是否是合适的解决方法实际上取决于您的具体用例。但是我确实同意 mongo 不应该仅仅为了白痴校对而拒绝多个数组索引。对于小型/低基数数组,这是一个很好的功能。

关于mongodb - 如何在 MongoDB 中索引两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6516725/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com