猫鼬从MongoDB(NodeJS / AWS Lambda)检索空数组

时间:2019-06-06 17:16:26

标签: node.js mongodb amazon-web-services mongoose aws-lambda

我正在使用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;
}; 

文档猫鼬AWS Lambda: https://mongoosejs.com/docs/lambda.html

更新:

 M.find({}).exec().then(function(allDocs){
    console.log('getting al docs')
    console.log(allDocs)//[]
  });

MongoDB Atlas

enter image description here

1 个答案:

答案 0 :(得分:0)

find是异步的,所以我认为您需要这样做:

M.find({}).exec().then(function(allDocs){
   //do your thing
});

或等待

let alldocs = await M.find({});