Node.js中MongoDB使用projection选项报错:Unsupported projection option
解决MongoDB投影选项不支持的问题
错误原因
你遇到的报错是因为MongoDB Node.js驱动版本对find方法的参数格式要求不同:
- 旧版驱动(v2及以下)中,
find的第二个参数直接是投影文档,不能传入包含projection键的对象; - 部分兼容环境下,即使是新版驱动,直接传递
projection选项也可能出现识别问题。
解决方案
方案1:直接传递投影文档(适配旧版驱动)
把投影对象作为find的第二个参数,去掉外层的projection键:
result = await mongoDBO.collection(collectionName).find({id: data.id}, {'_id': 0}).toArray();
方案2:使用链式project()方法(通用所有新版驱动)
用project()方法单独指定投影,兼容性更好:
result = await mongoDBO.collection(collectionName) .find({id: data.id}) .project({'_id': 0}) .toArray();
内容的提问来源于stack exchange,提问作者zahra aghli
相关产品推荐
相关产品推荐

