MongoDB Atlas Trigger查询集合返回空对象问题求助
问题原因
- MongoDB Atlas 函数中所有数据库操作都是异步返回Promise对象,你当前的代码没有添加
await关键字等待异步操作完成,拿到的只是未决议的Promise实例,序列化后自然输出空对象{}。 collection.find()方法返回的是查询游标,并非直接的文档结果集,需要调用toArray()方法将游标转换为实际的文档数组才能拿到集合里的数据。- 额外排查项:检查你当前Trigger配置的执行角色,是否拥有
test_database.test_collection的读取权限,若角色权限不足也会返回空结果。
修正后的代码
exports = async function() { const mongodb = context.services.get("test_cluster"); const db = mongodb.db("test_database"); const test_collection = db.collection("test_collection"); // 添加await等待异步完成,调用toArray转换游标为文档数组 var tasks = await test_collection.find().toArray(); console.log(JSON.stringify(tasks)); };
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

