当我发现所有影响大量文档的查询出现重复出错时,我试图从Mongoose中的集合中删除所有文档。我有一个架构设置和功能设置如下:
var mongoose = require( 'mongoose' ),
_ = require( 'lodash' ),
request = require( 'request' ),
helper = require( './helper' );
// Set up our spider schema with oldPath being our unique key to avoid duplicates
var gnatSchema = mongoose.Schema({
oldPath: { type: String, unique: true },
newPath: String,
content: String,
indexed: { 'type': Boolean, 'default': false },
template: String
});
// Declare model and export
var Gnat = mongoose.model( 'Gnat', gnatSchema );
// Reset all gnats to not being indexed
exports.reset = function( cb ) {
Gnat.update( { }, { indexed: true }, { multi: true }, cb );
};
// Remove all gnats
exports.clear = function( cb ) {
Gnat.remove( {}, cb );
};
但是,在更改前几个文档后,重置和清除函数都会抛出以下错误(成功更改的数字似乎是随机的):
{ [MongoError: Exec error: PlanExecutor killed]
name: 'MongoError',
message: 'Exec error: PlanExecutor killed',
index: 0,
code: 96,
errmsg: 'Exec error: PlanExecutor killed' }
我正在使用的数据库大约有2700个文档,但是在多次调用清除之后,即使将其降至1000以下,问题仍然存在。
我担心它可能与我的Mongo设置有关吗?我目前只是通过一个守护进程在本地运行Mongo,除此之外它还运行良好。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:0)
我清理了我的数据库并从备份中重新导入,这似乎已经修复了它。如果情况发生变化,我会再次发帖。我的猜测是在调试过程中数据库ID和/或指针搞乱了。