Node.js Mongoose保存失败
我有以下代码:Node.js Mongoose保存失败,node.js,mongoose,Node.js,Mongoose,我有以下代码: balanceModel.findOne({year: parseInt(req.params.year)},function(err,data){ data.months['weirdber'] = { x: 'y' }; data.save(function(e,d){ console.dir(e); res.json(d); }); }); null在我调用它时被打印出来,所以肯定不会抛出错误
balanceModel.findOne({year: parseInt(req.params.year)},function(err,data){
data.months['weirdber'] = {
x: 'y'
};
data.save(function(e,d){
console.dir(e);
res.json(d);
});
});
null
在我调用它时被打印出来,所以肯定不会抛出错误
回调的d
参数包含正确的数据,包括新添加的属性
但是,当我稍后检索集合时,在年中没有属性1999
我绝对确信我以后不会检索到错误的集合
这是我的模式,我把它从一个包含嵌套模式的完整模式缩减到这个,让我们称之为超级简单,以避免不好的单词,等等。仍然不起作用
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BalanceSchema = new Schema({
year: Number,
months: Object
});
module.exports = mongoose.model('Balance', BalanceSchema);
这是怎么回事?见鬼,我是想写false
。无论如何,我已经更新了这个问题。没有错误。以上只是一个简单的解释。真正的代码当然不仅仅是日志!!e
完成。如果您能为这个问题推荐一个模式,我将非常高兴。我快发疯了,看起来像个傻瓜。但最好是将months
设置为一个数组,以防止数据进入对象键。但是,我发现如果可以通过名称检索所需月份会很方便,因为这是传递给REST API的内容。在查询时,您仍然可以使用$
或$elemMatch
投影操作符使用数组来实现这一点。看见