web-dev-qa-db-ja.com

mongodb-nodejs-driver、DeprecationWarning:collection.countは非推奨です

次を使用してドキュメント数を取得したい:

db.collection('posts').count()

しかし、私は衰退しました:

DeprecationWarning:collection.countは非推奨であり、将来のバージョンで削除されます。代わりにcollection.countDocumentsまたはcollection.estimatedDocumentCountを使用してください

Mongodb nodejsドライバーのバージョンは次のとおりです。

  "dependencies": {
    "mongodb": "^3.1.0"
  },
  "devDependencies": {
    "@types/mongodb": "^3.1.0",
    "chai": "^4.1.2",
    "mocha": "^5.1.1",
    "ts-node": "^7.0.0",
    "tslint": "^5.10.0",
    "TypeScript": "^2.9.2"
  }

index.d.tsファイルにcountDocumentsまたはestimatedDocumentCountがありません。

この警告を解決するにはどうすればよいですか?

8
slideshowp2

あなたが理解したように、 MongoDB Node.JS driver v3.1 から開始して、count()メソッドは非推奨になり、次のように置き換えられます:

これらのメソッドは、 node-mongodb-native パッケージ自体に追加されました。たとえば、MongoDB Node.JSドライバーを使用すると、次のことができるはずです。

db.collection("posts").countDocuments(
  {}, // filters
  {}, // options
  function(error, result) {
    console.log(result);
  }
);

NODE-1501 も参照してください

Index.d.tsファイルにcountDocumentsまたはexpectedDocumentCountはありません。

これは、mongodb npmパッケージのTypeScript定義が2つの新しいメソッドを含むように更新されていないためです。タイプのリストは、実際には DefinitelyTyped (GitHub: DefinitelyTyped )を介してコミュニティによって個別に維持されます

新しいメソッドを追加するためにプルリクエスト DefinitelyTyped#27008 を送信しました。承認および公開されると、入力した定義を確認できるはずです。

17
Wan Bachtiar

基礎となるmongodbドライバーは.count()メソッドを廃止しました。代わりに.estimatedDocumentCount()または.countDocuments()を使用する必要があります。

0
pranita mohite