在试图理解 Parse 索引如何与 Mongo 一起工作时,我注意到我的一些慢查询正在使用 _rperm
字段(来自 ACL(,即使我没有在我定义的索引中指定它。它也不是在每个查询上,所以我想知道为什么有些查询需要_rperm
索引,而有些不需要。
如果我只按 id 查询,索引似乎需要 {"_id": 1, "_rperm": 1}
,而不仅仅是已定义的{"_id": 1}
索引。
parse 在后台做什么来添加_rperm
,什么时候需要将其作为索引包含?
_rperm
索引使用不一致的原因是由于在云代码中使用了useMasterKey。
如果将主密钥与查询一起使用,则无需检查 ACL。但是,如果在查询中不使用主密钥,则需要为集合上的_rperm
字段编制索引,以便该查询高效运行。