【发布时间】:2019-10-22 06:00:21
【问题描述】:
我正在 AWS Lambda 函数中使用 NodeJS 为我的 MongoDB Atlas 创建连接。我能够成功连接,但是当我执行.find({}) 获取所有数据时,我得到一个空数组。
Lambda
const mongoose = require('mongoose');
let conn = null;
const uri = 'mongodb+srv://xxx:xxx@todo-fnddg.mongodb.net/test';
let M = null;
exports.handler = async function(event, context) {
nodejs-aws-lambda-mongodb-atlas
context.callbackWaitsForEmptyEventLoop = false;
if (conn == null) {
conn = await mongoose.createConnection(uri, {
bufferCommands: false,
bufferMaxEntries: 0,
useNewUrlParser: true
});
M = conn.model('Todo', new mongoose.Schema(
{
title: String,
description: String,
date: Date,
status: String
}
));
}
const doc = M.find({});
console.log('items in the DB')
console.log(doc);
return null;
};
Mongoose AWS Lambda 文档: https://mongoosejs.com/docs/lambda.html
更新:
M.find({}).exec().then(function(allDocs){
console.log('getting al docs')
console.log(allDocs)//[]
});
MongoDB 地图集
【问题讨论】:
-
应该是
mongoose.model而不是conn.model
标签: node.js mongodb amazon-web-services mongoose aws-lambda