MongoDBは自動的に増加し2024 年の最新の入門チュートリアル。このコースでは カウンターのコレクションを使用します,JavaScript関数を作成します,JavaScript関数を使用します, について学習できます。
MongoDBは自動的に成長させるためのSQL機能と同じではありませんが、MongoDBのの_idが一意に自動的に生成されたシステムを識別する12バイトです。
しかし、いくつかのケースでは、我々は、自動拡張機能をObjectIdを実装する必要があるかもしれません。
MongoDBは、この機能を実装していないので、我々が達成するためにプログラムすることができ、我々は自動的にコレクションに対抗成長次の_idフィールドを実現します。
次の製品のマニュアルを考えてみましょう。 我々は、n自動拡張機能に1,2,3,4 _idフィールドから達成したいと考えています。
{ "_id":1, "product_name": "Apple iPhone", "category": "mobiles" }
これを行うには、カウンタのセットを作成し、自動シーケンスフィールドの値は長くすることができます:
>db.createCollection("counters")
今、私たちは、コレクション内のカウンタに次の書類を挿入キーとして商品コードを使用します。
{ "_id":"productid", "sequence_value": 0 }
sequence_valueフィールドは、後に自動成長によって値のシーケンスです。
コレクションの文書カウンターを挿入するには、次のコマンド・シーケンスを使用します。
>db.counters.insert({_id:"productid",sequence_value:0})
今、私たちは入力シーケンス名としてgetNextSequenceValue関数を作成し、指定されたシーケンスは、自動的に1によって成長し、最新のシーケンス値を返します。 この記事のシリーズの例でのProductIDと呼ばれます。
>function getNextSequenceValue(sequenceName){ var sequenceDocument = db.counters.findAndModify( { query:{_id: sequenceName }, update: {$inc:{sequence_value:1}}, new:true }); return sequenceDocument.sequence_value; }
次に、新しいドキュメントを作成するためにgetNextSequenceValue機能を使用して、戻されたドキュメントの_id自動シーケンスの値を設定します次のとおりです。
>db.products.insert({ "_id":getNextSequenceValue("productid"), "product_name":"Apple iPhone", "category":"mobiles"}) >db.products.insert({ "_id":getNextSequenceValue("productid"), "product_name":"Samsung S3", "category":"mobiles"})
あなたが見ることができるように、我々は_idフィールドを設定するgetNextSequenceValue関数を使用します。
機能の有効性を検証するために、我々は文書を読むには、次のコマンドを使用することができます。
>db.products.find()
上記のコマンドは、次のような結果が返されます、我々は_idフィールドが自己成長であるが見つかりました:
{ "_id" : 1, "product_name" : "Apple iPhone", "category" : "mobiles"} { "_id" : 2, "product_name" : "Samsung S3", "category" : "mobiles" }