Node.js连接MongoDB查询返回异常及连接字符串相关问题咨询
问题排查与修复
根因说明
你输出的对象是MongoDB Node.js驱动的FindCursor游标对象,find()方法本身仅返回游标实例,不会直接拉取匹配的文档数据,需要调用游标方法获取实际结果。
代码修正
你需要在find()后追加.toArray()拉取所有匹配文档,同时你现有代码遗漏了将查询配置options传入find方法,修正后代码如下:
async function Find(collection, data) { await connect; const dbo = client.db('telegram'); const options = { projection: {_id : 1, name: 1, town: 1}, } // 补充toArray()拉取结果,传入options参数 const result = await dbo.collection(collection).find(data, options).toArray(); console.log(result); return result; } // 调用方式不变 Find('dev',{name: 'Red'})
其他需求说明
- 函数式CRUD实现建议:可以封装4个独立函数,统一接收集合名、操作参数作为入参,全局复用同一个MongoDB连接池,避免每次操作重复创建连接。
- MongoDB连接字符串获取:无需额外第三方模块,已完成初始化的MongoClient实例可直接通过
client.s.url拿到当前使用的连接字符串;如果需要自定义生成连接串,按照标准格式拼接即可:mongodb://[用户名:密码@]主机地址:端口/[认证库名]?[连接参数]
内容的提问来源于stack exchange,提问作者constantijn van hartesveldt
相关产品推荐
相关产品推荐

