MongoDB索引文件破坏后导致查询错误的问题

问题描述:

MongoDB在非正常情况下关闭时,可能会导致索引文件破坏,造成数据在更新时没有反映到索引上。

  解决方案:

使用脚本,重建MongoDB所有表的索引。

var names  = db.getCollectionNames();
for( var i in names ){
    var name = names[i];
    print(name);
    
    var coll = db.getCollection(name);
    coll.reIndex();
}

MongoDB索引文件破坏后导致查询错误的问题

时间: 2024-10-10 23:02:03

MongoDB索引文件破坏后导致查询错误的问题的相关文章

server version for the right syntax to use near 'USING BTREE 数据库文件版本不合导致的错误

MySQL 返回:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE,  KEY `lang` (`language_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8' at line 5 解决办法是打开要导入

Mac下的hosts文件修改后导致xcode卡在"Attaching to ***"

昨天想翻墙, 于是想通过修改hosts文件的方法, 从网上找了很多IP列表直接替换了原来的hosts文件内容, 今天再次编译xcode时一直卡在"Attaching to ***"这个阶段, 重启xcode, 重新编译, 重启电脑, 都不行, 后来从Stack overflow上发现了问题所在, 我的hosts文件里的127.0.0.1 对应于 localhost这个映射也被我删掉了, 怎么把hosts文件复原呢, 看了一下目录/etc下面, 有个名叫hosts~orig的文件, 从名

lucene: 索引建立完后无法查看索引文件中的数据

索引建立时 1.对原有索引文件进行建立,是可以访问索引文件中的数据的 2.建立新索引文件,必须等建立完毕后,才可以访问,新建立的文件如果没有建立完是不可以被访问的 如果想建立200w的数据的索引又想立即查看的话,先建立1w,建好之后再去建立199w,这样做! 新索引文件建立时: [[email protected] index]$ ls -l dataIndex/main/ 总计 149612 -rw-r--r-- 1 webuser users 79441902 07-26 19:33 _0.

Mongodb索引和执行计划 hint 慢查询

查询索引 索引存放在system.indexes集合中 > show tables address data person system.indexes 默认会为所有的ID建上索引 而且无法删除 > db.system.indexes.find() { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "

升级CUDA版本导致VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件。。。。

VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件. E:\IGSNRR\dev\PhDThesisCode_CUDA\gtcg\gtcg.vcxproj : error : 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.5.props”.请确认 <Import> 声明中的路径正确,且磁盘上存在该文件. E:

dede修改templets模板文件夹后,出现“无法在这个位置找到: ”错误的解决办法

修改templets模板文件夹的方法: 首先找到系统配置文件common.inc.php,此文件存放在Include目录下,打开common.inc.php来修改默认模板目录templets, 查找:$cfg_templets_dir = $cfg_cmspath.'/templets'; 将上面的红色部分修改为想要的文件夹名称,例如:xinfu800.com_moban,修改完之后需要手动将Templets重命名为:xinfu800.com_moban.上述所说的方法还可以修改插件目录.会员目

mysql 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?

MYSQL在创建索引后对索引的使用方式分为两种:1 由数据库的查询优化器自动判断是否使用索引:2 用户可在写SQL语句时强制使用索引 下面就两种索引使用方式进行说明第一种,自动使用索引.数据库在收到查询语句后会查看where语句后面的查询条件,同时查看在表上面有哪些索引,然后根据查询条件和索引进行匹配.查询条件和索引的匹配包括查询字段与索引字段的匹配和查询类型和索引类型的匹配.前者很好理解,就是查询条件的属性上要建有索引,后者则是说查询条件必须能够使用索引,比如等值判断和范围查询可以使用B+树索

kali linux 更换更新源,apt-get update报:已下载 25.9 MB,耗时 38秒 (677 kB/s) 正在读取软件包列表... 完成 W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:http://mirrors.ustc.edu.cn/kali kali

正在读取软件包列表... 完成 W: 校验数字签名时出错.此仓库未被更新,所以仍然使用此前的索引文件.GPG 错误:http://mirrors.ustc.edu.cn/kali kali-rolling InRelease: 下列签名无效: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]> W: 无法下载 http://http.kali.org/kali/dists/kali-rolling/InRel

Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。

ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误.如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误. 1.返回顶部 1. “/”应用程序中的服务器错误. 由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件