我正在写一个小的个人项目,需要写入数据库并获取要用d3js显示的内容。所以我正在使用包含类似{x: "2004-10-02", y:20}
等的对象...现在我发现当我使用{{1}更改y0:0
的值时,mongoDB会添加y1: 20
甚至y
用Mongoose。
我有$set
:
Schema
工作正常。我可以插入与本机构发送请求的文件(不完整的模型):
var projectSchema = mongoose.Schema({
key : String,
description: String,
values: [{x: Date, y: Number, comment: String}]
});
并使用此处理请求:
{
name: "name of the Project",
description: "insert descritption"
}
然后我将值添加到var newProjectDetails = req.body;
var np = new Project(newProjectDetails);
np.save(function (err) {
if (err) {
return err;
}
else {
console.log("Project saved");
}
});
数组(参见Schema上面)并且它第一次正常工作,但如果我尝试覆盖数组中的一个条目,我会得到一个混乱的对象,带有额外的值这似乎是values
属性的旧值。
以下是我在y
数组中添加条目的方法:
values
但是当我获取内容时,我在数组中遇到了一个奇怪的问题:
我在控制台中得到了这个对象:
Project.findByIdAndUpdate(req.body._id,
{ $set: { values: req.body.values } },
function(err, tank){
if(err){
res.send(err);
}
res.send(tank);
})
这在Chrome中的RestWebServiceClient扩展中:
{
"x": "2014-10-12T00:00:00.000Z",
"y": 20,
"comment": "doanjas dfgixGHWXV",
"_id": "543a96c3a402c9ad17528d52"
}
但是在控制台内部,当我使用Angular迭代集合时,我得到了这个:
{
"x": "2014-10-12T00:00:00.000Z",
"y": 20,
"comment": "doanjas dfgixGHWXV",
"_id": "543a96c3a402c9ad17528d52"
}
这让我发疯,如果我映射数组并摆脱这个,为什么我会做那些额外的工作?