我想通过以下方式获得发布文档的数量:

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

但是,我得到了一个警告:

弃用警告:收集.count已弃用,并将在future 版本中删除.使用集合.清点文件或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文件中没有countDocumentsestimatedDocumentCount .

如何解决此警告?

推荐答案

如您所知,从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

索引中没有countDocuments或estimatedDocumentCount.d、 ts文件.

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

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

Mongodb相关问答推荐

在MongoDB集合中按文档内的频率对数组排序

所有文档中嵌套 struct 中的条件匹配-mongodb

MongoDB 在一个聚合中包含多个组

@DynamicPropertySource 未被调用(Kotlin、Spring Boot 和 TestContainers)

$lookup 的参数必须是字符串

NodeJS + MongoDB:使用 findOne () 从集合中获取数据

Mongo C#忽略属性

Meteor mongo 驱动程序可以处理 $each 和 $position 运算符吗?

Mongoid 有 Map/Reduce 吗?

获取收集字节使用情况统计信息的pymongo方法?

如何在 $lookup Mongodb 的 LocalField 中将字符串转换为 objectId

ZonedDateTime 与 MongoDB

为多个日期范围聚合 $group

如何获取 Mongoid 文档的所有字段名称?

带有 jQ​​uery Ajax/JSON 前端的 MongoDB 或 CouchDB 中间件

我如何使用 Twitter 的流 api 中的推文并将它们存储在 mongodb 中

使用 mongodb 在数组中查找子文档

如何在java中删除mongodb集合中的所有文档

用 MongoDB 中的属性表示多对多关系的最佳模型

Mongoose upsert 不创建默认模式属性