Mongoose更新:$ SET和$ PUSH不要更新任何内容



如何用$ set和$ push更新mongo?

我有以下数据:

[ { _id: 57682f69feaf405c51fdf144,
    email: 'testuser1@testdomain.com',
    username: 'testuser' },
  { username: 'sevilayha', _id: 5768d36c4c243de7422f681e, __v: 0 } ]

在我的Express App.js中:

// With Mongoose, everything is derived from a Schema. Let's get a reference to it and define our users.
var userSchema = mongoose.Schema({
    name: String,
    username: { type: String, required: true, unique: true },
    password: { type: String, required: true },
    admin: Boolean,
    location: String,
    meta: {
      age: Number,
      website: String
    },
    created_at: Date,
    updated_at: Date
});
// The next step is compiling our schema into a Model.
var User = mongoose.model('User', userSchema);
app.get("/", function(req, res) {
   var updateQuery = {};
   User.findOne({ username: /^sevilayha/ }, function (err, user) {
    if (err) return console.error(err);
    updateQuery["meta"] = {
      date: Date.now()
    }
    user.update({
      $push: updateQuery,
      $set: { size: 'large' },
      email: 'test@example.com'
    });
    res.status(200).json(user);
  });
  User.find(function (err, users) {
    if (err) return console.error(err);
    console.log(users);
  });

我仍然获得相同的数据。没有任何更新,设置或推动。我错过了什么?

我在"猫鼬"上:" 〜4.5.1"

我更新了我的模式,但我必须添加回调,否则它不起作用:

var userSchema = mongoose.Schema({
    name: String,
    username: { type: String, required: true, unique: true },
    password: { type: String, required: false },
    email: String,
    admin: Boolean,
    location: String,
    meta: {
      age: Number,
      website: String
    },
    data: Array,
    created_at: Date,
    updated_at: Date
});
var updateQuery = {};
  User.findOne({ username: /^sevilayha/ }, function (err, user) {
    if (err) return console.error(err);
    updateQuery["data"] = {
      date: Date.now()
    }
    user.update({
      $push: updateQuery,
      $set: { location: 'large' },
      name: 'John',
      email: 'test2@example.com'
    }, function(err, res) {
      if (err) return console.error(err);
      res.status(200).json(res);
    });
  });

多么奇怪!

相关内容

最新更新