MongoDB不尊重更新查询中的$set{name:“a值”}
我正在用express编写自己的API来执行mongo更新查询,但在更新名称字段时遇到了问题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"
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,这是一个特性!