mongodb-nodejs-driver,不建议使用警告:不建议使用collection.count

时间:2018-07-03 03:11:20

标签: mongodb node-mongodb-native

我想使用以下方法计算文件数:

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"
  }

countDocuments文件中没有estimatedDocumentCountindex.d.ts

如何解决此警告?

2 个答案:

答案 0 :(得分:16)

您发现,从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或EstimatedDocumentCount。

这是因为mongodb npm包的TypeScript定义尚未更新为包括两个新方法。实际上,类型列表是由社区通过DefinitelyTyped(GitHub:DefinitelyTyped)单独维护的。

我已提交拉取请求DefinitelyTyped #27008以添加新方法。一旦批准并发布,您应该能够看到键入的定义。

答案 1 :(得分:0)

基本的mongodb驱动程序已弃用.count()方法。您应该改用.estimatedDocumentCount()或.countDocuments()。