我正在尝试使用create方法中的数组中的对象初始化我的Mongoose Schema。
我的架构如下所示:
var imageSchema = new mongoose.Schema({
url: {type:String},
text: {type:String}
});
module.exports = todo.model('Todo', new mongoose.Schema ({
name : {type : String, default: ''},
dataArr : [imageSchema]
}));
我的路线如下:
app.post('/api/todos', function(req, res) {
Todo.create({
name : req.body.name,
},
{ $push : { dataArr : { url : 'foo' , text : 'bar'} } },
function(err, todo) {
if (err) {
res.send(err);
}
});
});
非常感谢任何帮助。
答案 0 :(得分:0)
我非常确定创建方法不接受第二个参数,您可以在其中提供$ push。
由于您正在创建对象,因此只需天真地设置数组:
app.post('/api/todos', function(req, res) {
Todo.create({
name : req.body.name,
dataArr : [{ url : 'foo' , text : 'bar'}]
},
function(err, todo) {
if (err) {
res.send(err);
}
});
});
答案 1 :(得分:0)
您可以将其作为数组添加到用于创建模型实例的对象中:
app.post('/api/todos', function(req, res) {
Todo.create({
name: req.body.name,
dataArr: [{url: 'foo', text: 'bar'}]
}, function(err, todo) {
if (err) { res.send(err); }
});
});