node.js - Mongoose nodejs "Unknown modifier: $pushAll"

标签 node.js mongodb mongoose

你好,我正在学习这门类(class),但我似乎无法解决我的问题,我明白了 { "名称": "MongoError", "message": "未知修饰符:$pushAll", “司机”:是的, “指数”:0, “代码”:9, "errmsg": "未知修饰符:$pushAll" 当我尝试创建新用户时。我查了一下,上面说太添加了 { usePushEach:真 }); 我做的我的 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 不再存在。

Use the $push operator with $each instead.


如果想强制使用$pushAllthis thread中给出了解决方案

enter image description here


问题的真正答案是:

@SkylarLopez hm... I would look at your version of mongoDb and mongoose. See if they match, maybe you have an unappropriate mongoose version that use $pushAll in it .save method

关于node.js - Mongoose nodejs "Unknown modifier: $pushAll",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48659992/

相关文章:

node.js - 带有 ObjectID 引用的 RESTful Mongoose

mongodb更新大型集合数组中的对象

javascript - Node.js knox s3 图像检索

node.js - Electron Builder 不包括嵌套的 node_modules

database - 如何使用 MongoDB 通过传递一个必须至少在文档的特定范围之一内的数字来查找文档?

node.js - mongoose 连接后如何获取数据库?

mongodb生命周期短

javascript - 如何在node.js中获取实时生成的childProcess.stdout

javascript - 如何使用 Node.js 服务器部署 Angular 5 应用程序

javascript - 用于在集合中获取子项和孙子项的 Mongoose 查询