MongoDB不尊重更新查询中的$set{name:“a值”}

MongoDB不尊重更新查询中的$set{name:“a值”},mongodb,mongoose,Mongodb,Mongoose,我正在用express编写自己的API来执行mongo更新查询,但在更新名称字段时遇到了问题 TagHandles.update( {"uuid":req.params.id}, // {$set: { name : "piers" } }, {$set: { type : "works" } }, {upsert:true,safe:false}, function(err, data){ if (err){ console.log("ERROR"

我正在用express编写自己的API来执行mongo更新查询,但在更新名称字段时遇到了问题

TagHandles.update(
  {"uuid":req.params.id},
  // {$set: { name : "piers" } },
  {$set: { type : "works" } },
  {upsert:true,safe:false},
  function(err, data){
     if (err){
        console.log("ERROR");
        console.log(err);
        console.log(data);
     } else {
        console.log("SUCCESS");
        console.log(err);
        console.log(data);
     }
     res.send(err || data);
  });
TagHandles是一个mongoose模型,具有以下模式

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var TagHandle = new Schema({
    type: String,
    uuid: String,
    handle: String
}, {
    collection: 'tagHandles'
});
var TagHandles = mongoose.model('tagHandles', TagHandle);

显然,mongoose阻止您更新任何未作为架构一部分列出的字段。为了更正,我添加了一行:

name: String

到猫鼬模式

这不是一个bug,这是一个特性!