我想要完成的是在主文档中有一个对象数组(子文档方式:在模式中定义),我希望这个子文档表现为文档本身。
这是,当将Object推入Subdocument数组时,我希望它引发错误:
unique
字段已被采用TemplateSchema
这将是我的主要文件:
var ApplicationSchema = new mongoose.Schema({
name: {
type: String,
required: true,
unique: true
},
description: {
type: String
},
...
templates: {
type: [TemplateSchema]
}
});
以下是子文档,templates
中的ApplicationSchema
字段:
var TemplateSchema = mongoose.Schema({
name: {
type: String,
required: true,
unique: true,
sparse: true
},
description: {
type: String
},
...
});
在这种情况下,当我尝试:
name
或{some: "trash"}
) - 不是
真的是对象本身,但它正在推动空template
templates
数组我无法弄明白为什么。
这是我用来将新模板对象插入到主文档中的templates
数组中的查询,我猜这里是不能按预期工作的地方:
exports.create = function(id, objTemplate, callback) {
ApplicationModel.findByIdAndUpdate(
{ _id: id },
{
$push: {
"templates": objTemplate
}
},
{
safe: true,
upsert: true,
new : true
},
function(err, application) {
// handle stuff
}
);
};