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