Monoogse create方法没有创建任何东西

时间:2016-02-23 09:58:40

标签: node.js mongodb mongoose

我正在尝试通过ajax请求在我的API中创建一个新文档。

这是我的代码:

mongoose.model("Meals").create(
    {
        _id:mongoose.Schema.Types.ObjectId(),
        id:id,
        createdBy:basicAuth(req).name,
        title: req.body.title,
        description: req.body.description,
        tags: tags,
        mealAdded:(new Date).getTime(),
        mealModified:(new Date).getTime(),
        ordersLog:[]
    },
    function (error,out) {
        res.send("Server responded with: " + out);
    }
);

所以根据documentations这应该有效。但由于某种原因,outundefinederror只是一个空对象{}

这是我的模特:

 var mongoose = require('mongoose');
 var mealsSchema = new mongoose.Schema({
     _id:mongoose.Schema.Types.ObjectId,
     id:{type:String},
     createdBy:{type:String},
     title: {type:String},
     description: {type:String},
     tags:[{type:String}],
     mealAdded:{type:Number},
     mealModified:{type:Number},
     ordersLog:[{
         number:{type:Number},
         epoch:{type:Number},
         phoneNumber:{type:String},
         Address:{type:Number},
         paid:{type:Number},
      }]
 });
 mongoose.model('Meals', mealsSchema);

我已经检查了meals集合,并没有真正添加任何内容!

我不知道自己错过了什么,我迷失了。

1 个答案:

答案 0 :(得分:0)

我在Mongoose v4.4.3下测试您的代码,错误显示如下

  

[错误:文档在保存之前必须有_id]

通过objectId生成mongoose.Schema.Types.ObjectId()似乎不正确,请参阅此ObjectId 如下所示更改代码,效果很好。

var ObjectId = mongoose.Types.ObjectId;
var id = new ObjectId;
console.log(id);
Meal.create(
    {
        _id: id,
        id: '123',
        createdBy:'abc',
        title: 'dddd',
        description: 'youare',
        tags: 'asdfg',
        mealAdded:(new Date).getTime(),
        mealModified:(new Date).getTime(),
        ordersLog:[]
    },
    function (error,out) {
        console.log(error);
        console.log("Server responded with: " + out);
    }
);