Mongoose:保存模型实例会在MongoDB中创建两个条目
我的代码:Mongoose:保存模型实例会在MongoDB中创建两个条目,mongodb,mongoose,Mongodb,Mongoose,我的代码: var mySchema = new Schema({ aktuell: {N7:String, Auftragsnr:String}, historie : [new Schema({ date: { type: Date, default: Date.now }, changed: {N7:String, Auftragsnr:String}, deleted: { type:
var mySchema = new Schema({
aktuell: {N7:String, Auftragsnr:String},
historie : [new Schema({
date: { type: Date, default: Date.now },
changed: {N7:String, Auftragsnr:String},
deleted: { type: Boolean, default: false }
}, {_id:false})]
}, { strict: false });
createIP = function(req, res) {
var ip = new IP ({
aktuell: req.body.aktuell,
historie: [
{
date: nowObj,
changed: req.body.aktuell
}
]
});
ip.save(function(err) {
if(err) {
res.send({status:err});
return;
} else {
res.send({ status: 'OK', ip:ip });
}
});
}
我希望它在我的数据库中创建这样的条目:
{ _id: 54181fc0c5b9c1c7294ef510,
historie:
[ { deleted: false,
changed: [Object],
date: Tue Sep 16 2014 13:32:16 GMT+0200 (CEST)
} ],
aktuell: { Auftragsnr: '12', N7: '123132' } }
但除了上面的对象文字外,还可以使用自己的ObjectId
创建一个额外的historie
对象。这就是我在模型中使用{u id:false}
的原因。我还按照Mongoose文档的建议将数组声明为新模式。我不在knowlodge了,我试了很多。如何摆脱这个错误
log(ip)显示mongoose确实向mongoDD传递了两个对象文本,一个是空的aktuell
对象,另一个是填充的。此外,更改后的对象的行为也很奇怪。这是怎么回事
Im listening on port 9000
Connected to Database
POST - /ip/create
{ __v: 0,
_id: 54182c3bd9d529df6085f853,
historie:
[ { deleted: false,
changed: {},
date: Tue Sep 16 2014 14:25:31 GMT+0200 (CEST) } ],
aktuell: {} }
IP created
POST /ip/create/ 200 25.763 ms - 128
POST - /ip/create
{ __v: 0,
_id: 54182c3bd9d529df6085f854,
historie:
[ { deleted: false,
changed: [Object],
date: Tue Sep 16 2014 14:25:31 GMT+0200 (CEST) } ],
aktuell: { Auftragsnr: '14', N7: 'qweqw' } }
IP created
POST /ip/create/ 200 23.870 ms - 214
如果您不希望嵌套文档上有
id
,也不希望在ip对象之外访问它们,则不需要为其创建另一个架构。一个新的模式通常意味着一个新的集合和对它的引用。相反,只需将其嵌套:
var IpSchema = new Schema({
aktuell: {
N7: { type: String },
Auftragsnr: { type: String },
},
historie: [
{
_id: false,
date: { type: Date, default: Date.now },
changed: {
N7: { type: String },
Auftragsnr: { type: String },
},
deleted: { type: Boolean, default: false },
}
],
});
我想这也能解决您的问题,让我知道。您的数据结构很好。不过,仅供参考,另一个也很好!问题的根本原因是:原来是因为在发出实际的“POST”请求之前,angular发出了飞行前头部请求“OPTIONS”。我的任务继续在寻找角兽和猫鼬的未记录特征和陷阱。好的,我明白了。希望另一个问题到时候能解决。