mongodb-nodejs-driver,DeprecationWarning:不推荐使用collection.count

sli*_*wp2 8 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"
  }
Run Code Online (Sandbox Code Playgroud)

没有countDocumentsestimatedDocumentCountindex.d.ts文件中.

我该如何解决这个警告?

Wan*_*iar 18

正如您所知,从MongoDB Node.JS驱动程序v3.1开始, 该count()方法已被弃用,将替换为:

这些方法已添加到node-mongodb-native 包本身.例如,通过MongoDB Node.JS驱动程序,您应该能够:

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

另见NODE-1501

index.d.ts文件中没有countDocuments或estimatedDocumentCount.

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

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


pra*_*ite 5

底层 mongodb 驱动程序已弃用 .count() 方法。您应该使用 .estimatedDocumentCount() 或 .countDocuments() 代替。