12-检查数据库
22.3.2 检查数据库
检查MongoDB数据库 在本节中,您将对示例数据库进行检查。这个示例演示了如何执行检查并查看结果。 请执行下面的步骤来进行检查。 1.确保启动了MongoDB服务器。 2.确保运行了生成数据库words的脚本文件code/hour05/generate_words.js。 3.使用下面的命令启动MongoDB shell: 4.使用下面的命令切换到数据库words: 5.使用下面的命令执行检查: 6.查看检查结果。下面是方法validate()的输出示例,注意到属性valid为true,而属性errors为空,这表明这个集合没有问题: ▲
检查数据库健康状况时,另一个很有用的工具是Collection对象的方法validate()。这个方法通过扫描数据和索引来检查集合的结构,并在输出中报告发现的问题。
例如,要检查数据库words的集合word_stats,可像下面这样做:
use words
db.word_stats.validate()
您还可给方法validate()传入true,以执行更详细的检查。这将对数据进行更深入、更全面的扫描,但消耗的时间和服务器资源也更多,如下所示:
use words
db.word_stats.validate(true)
▼ Try It Yourself
mongo
use words
db.word_stats.validate()
{
"ns" : "words.word_stats",
"firstExtent" : "0:5000 ns:words.word_stats",
"lastExtent" : "0:109000 ns:words.word_stats",
"extentCount" : 5,
"datasize" : 922896,
"nrecords" : 2673,
"lastExtentSize" : 2097152,
"padding" : 1,
"firstExtentDetails" : {
"loc" : "0:5000",
"xnext" : "0:19000",
"xprev" : "null",
"nsdiag" : "words.word_stats",
"size" : 8192,
"firstRecord" : "0:50b0",
"lastRecord" : "0:6eb0"
},
"lastExtentDetails" : {
"loc" : "0:109000",
"xnext" : "null",
"xprev" : "0:41000",
"nsdiag" : "words.word_stats",
"size" : 2097152,
"firstRecord" : "0:1090b0",
"lastRecord" : "0:14af80"
},
"deletedCount" : 4,
"deletedSize" : 1826928,
"nIndexes" : 2,
"keysPerIndex" : {
"words.word_stats.$_id_" : 2673,
"words.word_stats.$word_1" : 2673
},
"valid" : true,
"errors" : [ ],
"ok" : 1
}