【发布时间】:2016-05-08 21:09:34
【问题描述】:
我是 mongodb 和 mongoose 的新手。
请帮帮我!我陷入了下面描述的这个问题。
我有这个从控制器(路由器)调用的静态方法。
IDCounterSchema.statics.getNextID = function(collectionName, callback){
this.collection.findOneAndUpdate(
{name: collectionName},
{$inc: {sequence:1}},
{new: true, upsert: true},
callback
);
};
但是,当我在初始应用启动后第一次调用它时,它返回 null 值。
{ lastErrorObject: { updatedExisting: false, n: 0 },
value: null,
ok: 1 } // 1 means the execution succeeded
// in fact, i see the inserted data in mongo database.
根据this mongodb document,当upsert&new属性为真时,它不应该为空。
因为我在返回对象的 value 属性中得到了 null,所以会导致这个错误并破坏我的应用程序。
TypeError: Cannot read property 'sequence' of null
但是,在第二次启动应用程序后,当我调用相同的静态方法时,它可以正常工作而不会出现任何错误。
知道如何解决这个问题吗??
【问题讨论】: