sql >> データベース >  >> NoSQL >> MongoDB

mongodbのテキストをデクリメントできますか?

    英数字の文字列をインクリメント/デクリメントすることは意味がありません。 MongoDB(またはアプリケーションコード)に数値部分の調整を依頼する前に、元の文字列値を意味のある部分に分割する必要があります。

    通常、パーマリンク を使用します また、デクリメントではなく値をインクリメントすることになります。パーマリンクの全体的な目的は、特定のリンクが常に同じリソースを指していることを確認することです。

    実際にシーケンスパターンを実装したいようです。ここで、次に使用できるシーケンス値を見つけます。

    たとえば、次を参照してください:自動インクリメントシーケンスの作成 MongoDBマニュアルで。

    これは、getNextSequence()のわずかに変更されたバージョンです。 upsertを使用するドキュメントの関数 既存のスラッグカウンタードキュメントを見つけるか、新しいドキュメントを挿入します。戻り値は新しい一意のスラッグです:

    function getNextSequence(name) {
       var ret = db.counters.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            upsert: true,
            new: true,
          }
       );
    
        // Return the new slug (eg: "example_1")
        return name + '_' + ret.seq;
    }
    
    > getNextSequence("example")
    example_1
    > getNextSequence("example")
    example_2
    > getNextSequence("example")
    example_3
    

    開始値からデクリメントしたい場合は、シーケンスの開始値を挿入し、代わりに$inc: { seq: -1 }を使用してそれを減らすことができます。 。




    1. rmongodbを使用して大規模な結果セットの処理を高速化

    2. キャッシュを再利用するか、メモリを直接使用するか

    3. mongo接続を作成し、Ready!APIでテストスイート全体を実行できるようにします。

    4. C#を使用したMongoDB-トランザクションに関係なくドキュメントが追加されました