您好,我正在上这门课程,但是我似乎无法解决我的问题,{
"name": "MongoError",
"message": "Unknown modifier: $pushAll",
"driver": true,
"index": 0,
"code": 9,
"errmsg": "Unknown modifier: $pushAll"
}
当我尝试结交新用户时会遇到问题
。我查了一下,它说也增加
{
usePushEach: true
});
了我所做的猫鼬的模式设置,但它仍然出错,我似乎无法修复它,这里是代码
const mongoose = require("mongoose");
const validator = require("validator");
const jwt = require("jsonwebtoken");
var UserSchema = new mongoose.Schema({
email: {
require: true,
type: String,
minlength: 1,
trim: true,
unique: true,
validate: {
validator: validator.isEmail,
message: `{VALUE} is not a valid email`
}
},
password: {
type: String,
require: true,
minlength: 6
},
tokens: [{
access: {type: String, require: true},
token: {type: String, require: true}
}]
},{
usePushEach: true
});
UserSchema.methods.generateAuthToken = function() {
var user = this;
var access = "auth";
var token = jwt.sign({_id: user._id.toHexString(), access}, "abc123").toString();
// user = user.concat({access, token})
// console.log(user)
user.tokens.push({access, token})
return user.save().then(() => {
return token
})
};
var User = mongoose.model("User", UserSchema);
module.exports = {User};
Run Code Online (Sandbox Code Playgroud)
纵观MongoDB的官方文档 $pushAll,因为V2.4已被弃用。
最新的mongodb版本(3.6) $pushAll已经不存在。
请将$ push运算符与$ each一起使用。
如果您要强制使用$pushAll,则在此线程中给出解决方案
问题的真正答案是:
@SkylarLopez嗯...我会看你的mongoDb和mongoose版本。看看它们是否匹配,也许您有一个不适当的猫鼬版本,在其中使用$ pushAll .save方法
| 归档时间: |
|
| 查看次数: |
2662 次 |
| 最近记录: |