因此,我有以下代码可更新我的latestComment
。当我console.log
更新后的文档中有日期。但是,如果我返回MongoDB并检查字段本身,它甚至不存在吗?
以下是示例输出,其中仅包含来自返回文档的文本注释
{ user: { userRecord: 5c9ba4d4347bb645e086527b },
picture: null,
video: null,
document: null,
text: 'Dwight Schrute',
date: 2019-04-18T18:51:31.207Z }
代码段
CommentFeed.findOneAndUpdate(
{ _id: req.body.commentFeed },
{
$set: {
latestComment: {
user: {
userRecord: req.user._id
},
text: req.body.text,
picture: req.body.picture,
video: req.body.video,
document: req.body.document
}
}
},
{ new: true }
)
.then((feed) => {
console.log(feed.latestComment); <----I get the date timestamp here
...
架构
CommentFeedSchema = new Schema({
latestComment: {
user: {
userRecord: {
type: Schema.Types.ObjectId,
ref: 'User'
}
},
text: { type: String },
picture: { url: { type: String }, blobName: { type: String } },
video: { url: { type: String }, blobName: { type: String } },
document: { url: { type: String }, blobName: { type: String } },
date: { type: Date, default: Date.now } <--Not saving
},
...
答案 0 :(得分:0)
正如我所见,您正在使用$set
更新数据库中的文档(记录)。但是$set
用于更新文档中的特定字段。
当插入查询时,默认值有效,否则如果您要更新文档,则此值将不起作用,并且仅更新您已通过的字段。
注意:不传递日期的null
值