我有这个型号:
var userSchema = new mongoose.Schema(
{
userName: {type: String, required: true},
firstName: {type: String},
lastName: {type: String},
password: {type: String, required: true},
rate: Number,
rates: {type: Object, default: {String: String}},
}
);
我只想做一个put并将新密钥/ valye存储在费率中。首先,我检查rates
是否正确初始化了。然后,当我执行put请求时,我在console.log
中的所有参数都存在,并且我会在更新之前和之后打印,如您所见。
if (data.rate) {
console.log(user.rates,' before')
user.rates[data.rate_id] = data.rate
console.log(user.rates,' update')
user.rate = updateRate(user.rates)
}
现在我不关心user.rate
但只关心user.RATES
,所以问题如下:
先放,输出:
{} ' before'
{ '5686e0b40a8c0bc90a4fb4cc': '4' } ' update'
现在在下一个,如果我想把' 5'我期待:
{'5686e0b40a8c0bc90a4fb4cc': '4'} ' before'
{ '5686e0b40a8c0bc90a4fb4cc': '5' } ' update'
但我有这个:
{} ' before'
{ '5686e0b40a8c0bc90a4fb4cc': '5' } ' update'
因此我的user.rates
尚未存储。这是我保存它的代码:
user.save();
祝你好运
答案 0 :(得分:1)
您正尝试在需要{ ObjectId : String}
的架构中的字段上保存以下对象:{String : String}
。