私はマングーススキーマを持っています。スキーマに対応するコレクション内のレコードをカウントしたい。すべてのレコードをカウントするのではなく、いくつかの基準を満たすレコードをカウントします。このカウントを同期的に実行する方法は?
mongodb コンソールでは、「db.mycollections.find(criteria).count()」を実行できます。mongoose コードからこのクエリを実行するにはどうすればよいですか?
Mongoose は、ほとんどの nodejs モジュールと同様に、同期コード実行に使用するようには設計されていません。これにより、データベースがクエリを実行している間、アプリのすべての実行が停止し、長時間かかる可能性があります。
モデルで呼び出す非同期カウント関数があります。
次のようにスキーマからモデルを作成したと仮定します。
var MyModel = mongoose.model('mySchemaCollection', mySchema);
次のようにカウントを取得できます。
MyModel.count(criteria, function (err, count) {
/* handle count */
});
カウントやその他の種類のクエリについては、Mongoose のドキュメントを参照してください。