【发布时间】:2014-11-28 06:23:27
【问题描述】:
我正在使用 MongoDB 在 Yeoman Express MVC 生成器上构建一个简单的 REST 应用程序。
这是我的 MongoDB/Mongoose 模型(更新为完整的 update.js 模型):
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var UpdateSchema = new Schema({
title: String,
text: String,
authors: String,
url: String,
imageUrl: String,
dateCreated: { type: Date, default: Date.now },
reloadNeeded: { type: Boolean, default: true }
});
mongoose.model('Update', UpdateSchema);
这是数据在 Mongo 客户端中的样子:
> db.updates.find();
{ "_id" : ObjectId("5476453f8920d05ecdef4eec"), "title" : "Hello World", "text" : "yoda yoda" }
{ "_id" : ObjectId("547653748920d05ecdef4eed"), "title" : "Hihi", "text" : "mookie" }
这是我的 Express 应用程序的 JSON 输出:
[
{"_id":"5476453f8920d05ecdef4eec","title":"Hello World","text":"yoda yoda","reloadNeeded":true,"dateCreated":"2014-11-27T10:50:10.078Z"},
{"_id":"547653748920d05ecdef4eed","title":"Hihi","text":"mookie","reloadNeeded":true,"dateCreated":"2014-11-27T10:50:10.078Z"}
]
所以,dateCreated 和 reloadNeeded 是 在运行时设置的 - 但我希望在创建文档时设置(并保留)它们。怎么回事?
更新: 如果我从 Mongoose 而不是 MongoDB shell 创建,似乎值是持久的。
【问题讨论】:
-
Mongoose 默认值肯定会在创建文档时保留,但如果文档已经存在,则不会添加它们。
-
@JohnnyHK 我需要做些什么来确保我的模型更改得到执行吗?
-
更新:如果我从 Mongoose 而不是 MongoDB shell 创建,似乎值 ARE 会持续存在。
标签: node.js mongodb express mongoose