我正在使用AWS Lambda函数中的NodeJS为MongoDB Atlas创建连接。我能够建立成功的连接,但是当我执行.find({})
来获取所有数据时,我得到了一个空数组。
拉姆达
const mongoose = require('mongoose');
let conn = null;
const uri = 'mongodb+srv://xxx:[email protected]/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地图集
find是异步的,所以我认为您需要执行以下操作:
M.find({}).exec().then(function(allDocs){
//do your thing
});
或等待
let alldocs = await M.find({});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句