1

当我向我的节点服务器发布创建新项目的请求时,我需要从项目表中获取最大项目 ID。

IE 我正在使用 itemId 作为该表中的一个向上序列。

var Item = new Schema({
  itemId: {type: Number, required: true}
  ...
});

有没有推荐的方法来获取最大 itemId 以便我可以添加 1 并在创建新项目时使用该值?

4

2 回答 2

3

您可以通过以下方式获得最大值itemId

ItemModel.findOne().sort('-itemId').exec(function(err, item) {
    // item.itemId is the max value
});

但是,您不能确定在查询最大值和添加最大值并使用它之间,最大值不会发生变化,因为可能会同时出现另一个请求来执行相同的操作。

这就是为什么ObjectIds 更适合 ID 的原因之一。

于 2013-02-22T23:33:21.730 回答
1

这是我发现的一个链接,它正是我需要做的。甚至给出了几个选项。

http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/

于 2013-02-24T19:59:21.430 回答