Node.js 如何在创建方法上向Mongoose DB中的数组添加推送数据?

Node.js 如何在创建方法上向Mongoose DB中的数组添加推送数据?,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我试图用create方法中数组中的对象初始化Mongoose模式 我的模式如下所示: var imageSchema = new mongoose.Schema({ url: {type:String}, text: {type:String} }); module.exports = todo.model('Todo', new mongoose.Schema ({ name : {type : String, default: ''}, dataArr :

我试图用create方法中数组中的对象初始化Mongoose模式

我的模式如下所示:

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);
        }
    });
});

任何帮助都将不胜感激。

我确信create方法不会接受第二个参数,您可以在其中提供$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);
        }
    });
});

可以将其作为数组添加到用于创建模型实例的对象中:

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); }
  });
});