当数据大小超过500万时,在mongoDb中从java启动find()查询的速度会变慢

当数据大小超过500万时,在mongoDb中从java启动find()查询的速度会变慢,java,mongodb,performance,Java,Mongodb,Performance,在使用java在mongoDb中执行find()操作时,我的应用程序面临性能问题,当数据大小超过500万时,需要花费大量时间(搜索单个文档有时需要数千毫秒) 欢迎您的任何意见。:) java查找查询: db.test.find("flag":false, $or:[{"uni.phone":"99********"},{"uni.mail":"abc@test.com"}] mongoDb上的索引: db.test.createIndex({"flag":-1}) db.test.create

在使用java在mongoDb中执行find()操作时,我的应用程序面临性能问题,当数据大小超过500万时,需要花费大量时间(搜索单个文档有时需要数千毫秒)

欢迎您的任何意见。:)

java查找查询:

db.test.find("flag":false, $or:[{"uni.phone":"99********"},{"uni.mail":"abc@test.com"}]
mongoDb上的索引:

db.test.createIndex({"flag":-1})
db.test.createIndex({"uni.phone":1})
db.test.createIndex({"uni.mail":1})
Mongo文档json:

{
    "_id" : "912c2345-f95g-40bf-c871-f6135d3acd879",
    "uni" : {
        "phone" : [
            "99********"
        ],
        "email" : [
            "abc@test.com"
        ]
    },
    "comb" : false,
    "flag" : false,
    "combIds" : null,
    "Histories" : null,
    "creationDate" : "2017-06-14T17:03:44Z"
}

Mongo Stats
:此处捕获的索引位于错误的字段中。您需要
db.test.createIndex({“uni.phone”:1})
db.test.createIndex({“uni.mail”:1})
。它们是嵌套的,所以“路径”很重要。感谢您指出这一点……索引是:db.test.createIndex({“flag”:-1})db.test.createIndex({“uni.phone”:1})db.test.createIndex({“uni.mail”:1})您使用的MongoDB的具体版本以及部署类型(独立、副本集、分片集群)?你能把
explain(true)
的结果包括进来吗?