【发布时间】:2018-06-11 04:10:36
【问题描述】:
我在 Mongoose 中创建了一个模型:
var userWalletSchema = new Schema({
userid: {type: Schema.ObjectId, ref: 'users'},
Transactions: [{
Datum: {Type: Date},
CODE: {Type: String},
aantal: {Type: Number},
soortTransactie: {Type: String},
bedrag: {Type:Number}
}]
},
{collection:'userWallet'});
我插入以下文档:
var newRecord = { Datum: '2017-12-21T00:00:00+01:00',
CODE: 'IE00B3VWN518',
aantal: 48,
soortTransactie: 'Aankoop',
bedrag: 478 };
使用此代码:
UserWallet.findOneAndUpdate(
{ userid: mongoose.Types.ObjectId(req.user.id)},
{ $push: {Transactions: newRecord}},
{ upsert: false },
function (err, model) {
console.log(err);
console.log(model);
});
我尝试了几种排列和选项,但都给出了相同的结果:一条记录被推送到 Transactions 数组,但它始终包含值 _id: ObjectId('5a490c3376dfb6630464f6e1') (当然是 Id 更改),但是从来没有我打算插入的文档。
这里出了什么问题?我希望插入新的子文档会很容易。
解决方案:我找到了问题所在。我用大写的 T 输入了“Type”,并且这个词在 JavaScript 中应该全部小写。太傻了,花了我2天时间才发现。
【问题讨论】:
标签: json node.js mongodb mongoose push