【发布时间】:2014-12-28 02:44:17
【问题描述】:
我使用 Mongoose 编写了以下架构:
var querySchema = mongoose.Schema({
quoteId: { type: String, default: '' },
zipcode: { type: String, default: '' },
email: { type: String, default: '' },
type: {type: String, default: ''},
isEmailChecked: { type: Boolean, default: true },
});
我只为 querySchema 中的 3 个属性提供值,假设在持久化 query 对象的新实例时字段的结果将采用默认值:
var query = {};
query.quoteId = "1414775421426";
query.email = "myself@somewhere.com";
query.type = "Foo";
但以下文档是我在集合中看到的结果:
{
"_id" : ObjectId("5453c27d0e4c3f2837071856"),
"email" : "myself@somewhere.com",
"type" : "Foo",
"quoteId" : "1414775421426",
"__v" : 0
}
当 query 对象的新实例被持久化到 MongoDB 数据库时,是否应该不为 isEmailChecked 和 zipcode 分配它们的默认值?
以下是我如何使用 ExpressJS/NodeJS 持久化查询对象的实例:
app.post('/api/queries', function (req, res) {
QuoteQuery.create({
quoteId: req.body.query.quoteId,
type: req.body.query.type,
zipcode: req.body.query.zipcode,
email: req.body.query.email,
isEmailChecked: req.body.query.isEmailChecked,
}, function (err, query) {
if (err) {
res.send(err);
}
res.json(query);
});
});
有人能帮我理解为什么我在 MongoDB 数据库的结果文档中获得了 isEmailChecked 和 zipcode 属性吗?
我在我的应用程序中使用 NodeJS、AngularJS 和 ExpressJS 以及 MongoDB。
【问题讨论】:
标签: angularjs node.js mongodb express mongoose