1

新しいアイテムを作成するためにノード サーバーにリクエストを送信するとき、アイテム テーブルから最大アイテム ID を取得する必要があります。

IE私はitemIdをそのテーブルのワンアップシーケンスとして使用しています。

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

新しいアイテムを作成するときに 1 を追加してその値を使用できるように、最大​​ itemId を取得する推奨される方法はありますか?

4

2 に答える 2

3

次の方法で最大値を取得できますitemId

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

ただし、最大値を照会するときと、最大値を追加して使用するときとの間に最大値が変更されないことを確認することはできません。これは、同じことを行う別の要求が同時に来る可能性があるためです。

ObjectIdこれが、 ID に s が好まれる理由の 1 つです。

于 2013-02-22T23:33:21.730 に答える
1

これは、私が必要とすることを正確に実行することがわかったリンクです。いくつかのオプションも提供します。

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

于 2013-02-24T19:59:21.430 に答える