我想使用以下方法计算文件数:
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
文件中没有estimatedDocumentCount
或index.d.ts
。
如何解决此警告?
答案 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()。