首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Serverless -使用MongoDB Atlas查询的Atlas不运行

Serverless -使用MongoDB Atlas查询的Atlas不运行
EN

Stack Overflow用户
提问于 2018-02-15 11:48:14
回答 1查看 809关注 0票数 0

我已经创建了一个AWS帐户,并希望使用MongoDB阿特拉斯与AWS。我下载的唯一依赖项是本地mongodb。

代码语言:javascript
复制
npm install mongodb

基于驱动程序的连接字符串来自Nodejs的mongoDB Atlas

代码语言:javascript
复制
var uri = "mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/test";
MongoClient.connect(uri, function(err, client) {
   const collection = client.db("test").collection("devices");
   // perform actions on the collection object
   client.close();
});

我认为连接是成功的,因为err参数为NULL。

但是我不知道如何创建集合,如何找到结果,如何插入文档。

我试过这段代码

代码语言:javascript
复制
module.exports.hello = (event, context, callback) => {

var MongoClient = require('mongodb').MongoClient;

var uri = "mongodb+srv://kay:myRealPassword@cluster0.mongodb.net/test";
MongoClient.connect(uri, function(err, client) {
   const collection = client.db("test").collection("devices");
   collection.insert( { "msg" : "My First Document" } );
   var results = client.db("test").collection("devices").find();
   console.log(results);
   client.close();
   callback(null, { message: 'Go Serverless v1.0! Your function executed successfully!', event });
});

};

但它以JSON格式返回一个巨大的对象(在Windows控制台中),它类似于配置数据(而不是查询结果)

在这里输入图像描述

我在本地执行这段代码

代码语言:javascript
复制
sls invoke local --function hello
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-15 12:53:23

一般的想法是检查连接、插入等方面是否有错误。看看这个错误检查:

代码语言:javascript
复制
if (error) return 1;

有更复杂的方法,但就您的情况而言,这应该可以完成工作。

这是一个显示脚本外观的示例:

代码语言:javascript
复制
MongoClient.connect(uri, (error, client) => {
  if (error) return 1;    // Checking the connection
  console.log('Connection Successful');
  var db = client.db('mydb');        // Your DB

  let newDocument = { "msg" : "My First Document" };    // Your document

  db.collection('mycollection').insert(newDocument, (error, results) => {   // Your collection
    if (error) return 1;   // Checking the insert
    console.log('Insert Successful');
  })

  db.collection('mycollection')
    .find({})
    .toArray((error, accounts) => {
      if (error) return 1;   // Checking the find
      console.log('Find Successful');
      console.log(accounts);
      return 0;
  })

})

你应该有这样的输出:

代码语言:javascript
复制
Connection Successful
Insert Successful
Find Successful
[ { _id: 5a857dd2c940040d85cbe5f2, msg: 'My First Document' } ]

如果您的输出不是这样的,那么丢失的日志将指出错误所在的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48806535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档