mongodb存储大型文档,查询速度非常慢

mongodb存储大型文档,查询速度非常慢,mongodb,mongodb-query,mongodb-java,Mongodb,Mongodb Query,Mongodb Java,我在mongodb服务器中将一个很长的字符串存储到我的文档中,我的文档看起来像 { "_id": ObjectId("5280efdbe4b062c93b582118"), "viewID": 1, "content": "a very long string" } 在同一个收藏中大约有数百份这样的文件。我已为收藏编制了索引 问题是我只执行了一个非常简单的查询 db.blog.find({viewID:1}); 然后等待响应的时间很长(超过几个小时),并且没有显示任何

我在mongodb服务器中将一个很长的字符串存储到我的文档中,我的文档看起来像

{
    "_id": ObjectId("5280efdbe4b062c93b582118"),
    "viewID": 1,
    "content": "a very long string"
}
在同一个收藏中大约有数百份这样的文件。我已为收藏编制了索引

问题是我只执行了一个非常简单的查询

db.blog.find({viewID:1});
然后等待响应的时间很长(超过几个小时),并且没有显示任何错误消息,服务器状态正常。但是我只添加了
db.blog.find({viewID:1}).limit(1)
mongodb立即返回结果

如何解决问题或提高性能

以下是我的解释:

db.blog.find({viewID:1}).explain();
{
    "cursor" : "BtreeCursor viewID_1",
    "isMultiKey" : false,
    "n" : 377,
    "nscannedObjects" : 377,
    "nscanned" : 377,
    "nscannedObjectsAllPlans" : 377,
    "nscannedAllPlans" : 377,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "millis" : 45,
    "indexBounds" : {
        "viewID" : [
            [
                1,
                1
            ]
        ]
    },
    "server" : "Server:27017"
}
这里是colStat:

db.blog.stats();
{
    "ns" : "***.blog",
    "count" : 98582,
    "size" : 2330759632,
    "avgObjSize" : 23642.851960804204,
    "storageSize" : 2958364672,
    "numExtents" : 18,
    "nindexes" : 2,
    "lastExtentSize" : 778276864,
    "paddingFactor" : 1,
    "systemFlags" : 1,
    "userFlags" : 0,
    "totalIndexSize" : 6540800,
    "indexSizes" : {
        "_id_" : 4055296,
        "viewID_1" : 2485504
    },
    "ok" : 1
}

您有多少文档?文档有多大?请告诉我们您是如何为集合编制索引的。另外,请在命令末尾添加
.explain()
后运行查询,并发布输出。它告诉我们是否以及如何使用索引。我猜viewID没有被索引?让我们把事情弄清楚。如果运行
db.blog.find({viewID:1})需要几个小时,但是如果运行
db.blog.find({viewID:1}).explain()它会给您提供
“millis”:45
?是@zero323,但在localhost上也会出现同样的情况。