所以我有一个包含它的模型作为其中的一部分。我正在尝试插入按日分类的记录(“2017年7月20日”,“7/21/2017”),然后单独加盖时间戳。
我的问题是你如何在Mongoose中插入不仅推送记录,而且如果需要也创建父/观察
observations : [
{
date : {type: Date, default: new Date().toLocaleString().split(',')[0]},
record :
[
{
category : String,
timestamp : {type: Date, default: Date.now()},
}
]
}
],
这是我当前推送记录的当前更新代码,但我不确定当“日期”的观察不存在时如何使嵌套的upsert工作:
var todayISO = "7/21/2017"
var observation = {
"category": "Diaper",
"timestamp": todayISO,
}
Child.findOneAndUpdate({"child.firstName.name": studentName, "child.observations.date": todayISO} , {$push: {"child.observations.$.record": observation}}, {upsert: true, new: true}, function(err,result){
if(err){
console.log("error");
return res.status(500).json({err: "Couldn't append record"});
}
else {
console.log("added");
return res.json({'record': observation, message: 'Added record under ' + observation.category});
}
});
这样:
"observations":
[
{
date: "2017-07-20T04:00:00.000Z",
"record":
[
{"category":"Diaper",timestamp: "2017-07-06T21:04:30.337Z"}
]
}
当用户尝试在新的一天记录记录时变为此:
"observations":
[
{
date: "2017-07-20T04:00:00.000Z",
"record":
[
{"category":"Diaper",timestamp: "2017-07-20T21:04:30.337Z"}
]
},
{
date: "2017-07-21T04:00:00.000Z",
"record":
[
{"category":"Nap",timestamp: "2017-07-21T10:04:30.337Z"}
]
}
]