Node.js Monogse创建方法是';我没有创造任何东西

Node.js Monogse创建方法是';我没有创造任何东西,node.js,mongodb,mongoose,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,

我正试图通过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);
    }
);
因此,根据法律,这应该是可行的。但是由于某种原因,
out
未定义的
,而
错误
只是一个空对象
{}

这是我的模型:

 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);
我已经检查了
餐食
收藏,没有添加任何内容


我不知道我丢失了什么,我丢失了。

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

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

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

您不需要在架构上定义
\u id
。猫鼬为你添加了它。您也不需要在创建时生成该_id。Mongo会帮你的。此外,Mongoose别名为
\u id
.id
,因此将其定义为模式中的字段将为您带来潜在的副作用。如果您想要一个次要id字段,我会将其显式命名为
mealId
。话虽如此,您的问题是您正在使用
mongoose.Schema.Types.ObjectId
vs
new mongoose.Types.ObjectId()
来生成您的ObjectId。您是否在代码中的任何地方发布了
mongoose.connect()
?很有可能你还没有。@cdbajorin谢谢,这真的解决了我的问题。奇怪的是它没有给我任何错误。