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

Node内のMongoDBコレクション内のドキュメントの量をどのようにカウントしますか?

    コレクション内のドキュメントの数を取得するには、db.collection.find({}).count()を使用します 。

    ただし、実行しようとしていることは機能しません。データベースへの並列アクセスが多い場合、複数のスレッドが同時にこれを実行し、同じカウントを受け取り、同じIDのドキュメントを挿入する可能性があります。 CAP定理 によると 、MongoDBのような分散データベースはこの種の一貫性を提供できません。

    代わりにすべきことは、MongoDB ObjectId に依存することです。 ドキュメントの一意の識別子としての。 _idに独自の値を指定しない場合、MongoDBはドキュメントごとにこれらを自動的に生成します 。 ObjectIdはグローバルに一意であるため(実用的な目的には十分に一意です)、衝突は発生しません。また、タイムスタンプで始まるため、_idで注文すると おおよそ時系列の順序になります(前述のように、厳密 分散システムでは時系列の順序を提供することはできません。

    経験則として、AUTO_INCREMENTを使用する場合は常に SQLでは、MongodDBでObjectIdを使用する可能性があります。




    1. ネストされた配列に複数プッシュする方法

    2. BSONタイムスタンプをMongoチェンジストリームから日付に変換するにはどうすればよいですか?

    3. MongoDB GridFSでの全文検索?

    4. mongoaggregationを使用してドキュメントをペアでグループ化する