You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中读取MongoDB 5.0集合并解决Find方法不存在报错

问题原因
  • 适配MongoDB 5.0的MongoDB .NET 2.x及以上版本驱动中,Find是扩展方法,PowerShell原生不支持直接通过集合实例调用扩展方法,必须显式调用扩展方法所属的静态类MongoDB.Driver.IMongoCollectionExtensions。
  • 你代码中注释掉了返回类型为MongoDB.Bson.BsonDocument的集合获取逻辑,默认返回PSObject类型的集合对象,类型不匹配也可能导致方法匹配失败。
修复方案

你可以任选以下任意一种方案修复:

方案1:显式调用扩展方法类执行Find

将最后一行$collection.find($query)替换为以下代码:

[MongoDB.Driver.IMongoCollectionExtensions]::Find($collection, $query).ToList()

如果需要返回标准Bson格式结果,可以把获取集合的代码改成你注释的版本:

$Collection = Get-MongoDBCollection $database $collectionName -returnType ([MongoDB.Bson.BsonDocument])

方案2:改用同步FindSync方法

驱动内置的FindSync是集合实例原生支持的同步查询方法,PowerShell可以直接调用,将最后一行替换为:

$cursor = $collection.FindSync($query)
$cursor.ToList()
附加优化建议

你的代码中重复加载了MongoDB.Bson.dll和MongoDB.Driver.dll,可以删掉重复的Add-Type语句避免运行警告。

内容的提问来源于stack exchange,提问作者kuldeep Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:15:01