繁体   English   中英

使用 OR 和 Object 解析 DB/Mongo 复合索引

[英]Parse DB/Mongo compound index with an OR and an Object

我正在研究一个项目,其中数据以非常奇怪的形状存储,这导致在第一次登录尝试时查找用户的查询需要很长时间。 我很难思考如何为此创建索引。 我想找到一个用户。 这些属性中的任何一个都可以未定义,我需要找到与其中任何一个匹配的单个用户(OR)

query.equalTo('firebaseUid', uid);
query.equalTo('emails.apple', email);
query.equalTo('emails.google', email);
query.equalTo('phoneNumber', phoneNumber);
query.equalTo('emails.facebook', email);
query.equalTo('emails.password', email);

这个索引是正确的还是有意义的? 我特别迷失了我们在电子邮件 Object 中使用find的事实(不要问我为什么我们将它们分开......)。 用户很可能拥有 UID(首次登录后)。 从那里我根据用户状态从最有可能的登录方法中订购(主要是苹果用户,然后是谷歌......)

db.userCollection.createIndex({firebaseUid: 1, emails.apple: 1, emails.google: 1, phoneNumber: 1, emails.facebook: 1, emails.password: 1})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM