我正在使用MEAN.IO堆栈(使用Mongoose的默认模板)和Passport.js身份验证来创建新用户。每当在下面的代码中调用user.save(...)时:
// Use Facebook strategy
passport.use(new FacebookStrategy({
clientID: config.strategies.facebook.clientID,
clientSecret: config.strategies.facebook.clientSecret,
callbackURL: config.strategies.facebook.callbackURL
},
function(accessToken, refreshToken, profile, done) {
User.findOne({
'facebook.id': profile.id
}, function(err, user) {
if (user) {
return done(err, user);
}
user = new User({
name: profile.displayName,
email: profile.emails[0].value,
provider: 'facebook',
facebook: profile._json,
roles: ['authenticated']
});
user.save(function(err) {
if (err) {
console.log(err);
return done(null, false, {message: 'facebook login failed, email already used by other login strategy'});
} else {
return done(err, user);
}
});
});
}
));
控制台记录以下错误:
MongoError: attempt to use unsupported textIndexVersion 2, only textIndexVersion 1 supported
我看过网上并通过MEAN.IO堆栈代码找不到任何关于如何更改textIndexVersion的内容。
有关如何更改版本或修复此错误的任何想法吗?
答案 0 :(得分:1)
根据Mongo的错误报告:
mongod v2.4.9将正确禁止对具有。的集合进行更改 与2.4不兼容的文本索引。尝试插入,更新, 或删除这些集合中的文档将返回错误消息 "尝试使用不受支持的textIndexVersion 2,仅使用textIndexVersion 1支持"。
https://jira.mongodb.org/browse/SERVER-11494
我建议更新您的Mongo版本以与v2.4.9兼容