当我向我的节点服务器发布创建新项目的请求时,我需要从项目表中获取最大项目 ID。
IE 我正在使用 itemId 作为该表中的一个向上序列。
var Item = new Schema({
itemId: {type: Number, required: true}
...
});
有没有推荐的方法来获取最大 itemId 以便我可以添加 1 并在创建新项目时使用该值?
您可以通过以下方式获得最大值itemId
:
ItemModel.findOne().sort('-itemId').exec(function(err, item) {
// item.itemId is the max value
});
但是,您不能确定在查询最大值和添加最大值并使用它之间,最大值不会发生变化,因为可能会同时出现另一个请求来执行相同的操作。
这就是为什么ObjectId
s 更适合 ID 的原因之一。
这是我发现的一个链接,它正是我需要做的。甚至给出了几个选项。
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/