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

コレクション間でドキュメントを移動することは、MongoDBの状態の変化を表す良い方法ですか?

    はい、これは仕様によるものです。 MongoDBは、結合またはトランザクションを明示的に提供しません。削除+保存はトランザクションの形式です。

    ここには、実際には2つの複雑さの低いオプションがあり、どちらもfindAndModifyを含みます。 。

    オプション#1:単一のコレクション

    あなたの説明に基づいて、あなたは基本的にいくつかの追加機能を備えたキューを構築しています。単一のコレクションを活用する場合は、findAndModifyを使用します 処理中に各アイテムのステータスを更新します。

    残念ながら、それはあなたがこれを失うことを意味します:...「入ってくる」コレクションはこの方法で非常に小さくそして速く保つことができます

    オプション#2:2つのコレクション

    もう1つのオプションは、基本的にfindAndModifyを利用した2フェーズコミットです。 。

    このこちら のドキュメントをご覧ください。 。

    アイテムがAで処理されると 削除のフラグを立てるフィールドを設定します。次に、そのアイテムを Bにコピーします 。 Bにコピーしたら その後、アイテムを Aから削除できます 。



    1. mongodbに設定されたシャードレプリカで読み取り専用クエリを実行する方法

    2. ログインまたはサインアップでmongodbが機能しないyii2

    3. MongoDBとCassandra

    4. MongoDB $ arrayToObject