MongoDB不尊重$ set {name:"值"在更新查询中

时间:2014-09-11 23:20:04

标签: mongodb mongoose

我在express中编写自己的API来执行mongo更新查询,而且我无法专门更新“name”字段。

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模型,具有以下Schema

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);

1 个答案:

答案 0 :(得分:0)

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

name: String

到mongoose架构。