你好,我正在参加这门类(class),但我似乎无法解决我的问题,我明白了{ "name": "MongoError", "message": "Unknown modifier: $pushAll", "driver": true, "index": 0, "code": 9, "errmsg": "Unknown modifier: $pushAll"}
当我尝试创建新用户时。我查了一下,它说也添加{ usePushEach: true});
到我所做的 Mongoose 的架构设置,但它仍然出错,我似乎无法在这里修复它是代码
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};
最佳答案
查看 mongodb official documentation $pushAll
自 v2.4 以来已被弃用。
在最新的 mongodb 版本 (3.6) 中,$pushAll
不再存在。
如果要强制使用 $pushAll
,在 this thread 中给出了解决方案
问题的真正答案是:
关于node.js - Mongoose nodejs "Unknown modifier: $pushAll",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48659992/