web-dev-qa-db-fra.com

mongodb-nodejs-driver, DeprecationWarning: collection.count est déconseillé

Je veux que mes documents soient comptés en utilisant:

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

Mais j'ai un déclin:

DeprecationWarning: collection.count est obsolète et sera supprimé dans une future version. Utilisez plutôt collection.countDocuments ou collection.estimatedDocumentCount

Voici ma version du pilote 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"
  }

Il n'y a pas de countDocuments ou estimatedDocumentCount dans index.d.ts fichier.

Comment puis-je résoudre cet avertissement?

8
slideshowp2

Comme vous l'avez compris, à partir de pilote MongoDB Node.JS v3.1 la méthode count() a été déconseillée et sera remplacée par:

Ces méthodes ont été ajoutées au package node-mongodb-native lui-même. Par exemple, via le pilote MongoDB Node.JS, vous devriez pouvoir faire:

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

Voir aussi NODE-1501

Il n'y a aucun countDocuments ou estimationDocumentCount dans le fichier index.d.ts.

Cela est dû au fait que les définitions TypeScript pour le package mongodb npm n'ont pas été mises à jour pour inclure les deux nouvelles méthodes. La liste des types est en fait maintenue séparément par la communauté via DefinitelyTyped (GitHub: DefinitelyTyped )

J'ai soumis une demande d'extraction DefinitelyTyped # 27008 pour ajouter les nouvelles méthodes. Une fois approuvé et publié, vous devriez pouvoir voir les définitions saisies.

17
Wan Bachtiar

Le pilote mongodb sous-jacent a déprécié la méthode .count (). Vous devez utiliser .estimatedDocumentCount () ou .countDocuments () à la place.

0
pranita mohite