javascript - 检索 MongoDB 集群的文档

标签 javascript node.js mongodb

我正在尝试从 MongoDB 集群检索所有文档。我遵循了我在网上看到的代码,但是我遇到了一个小问题。

const MongoClient = require('mongodb');
const uri = "mongodb+srv://<user>:<password>@cluster0-10soy.mongodb.net/test?retryWrites=true&w=majority";
var questionsArray = [];

MongoClient.connect(uri, function (err, client) {


    const database = client.db("WhatSportWereYouMadeFor");
    database.collection("Questions").find({}, (error, cursor) =>{
        cursor.each(function(error, item){
            if (item == null){
                console.log(error);
            }
            questionsArray.push(item);
        });
    })
});


module.exports = { questionsArray };

我可以很好地连接到数据库,但是我在 stop 变量处设置了一个断点,并且在从数据库检索到的任何文档被推送到问题数组之前会被击中。 我还尝试将代码包装在异步函数中,然后在 stop 变量之前等待它,但该断点仍然首先被命中,并且仅在文档被推送到数组之后才被命中。

最佳答案

我会做什么,将整个事情包装成一个 promise ,然后导出。

const MyExport = () => {
  return new Promise((resolve, reject) => {
    var questionsArray = [];
    MongoClient.connect(uri, function (err, client) {
      const database = client.db("WhatSportWereYouMadeFor");
        database.collection("Questions").find({}, (error, cursor) =>{
          cursor.each(function(error, item){
            if (item == null){
                console.log(error);
            }
            questionsArray.push(item);
        });
      resolve(questionsArray)
     })
   });
  })
}

module.exports.questionsArray = MyExport

但是当你导入它时,你需要运行并等待它

cosnt questionsArrayFunc = require("path/to/this/file").questionsArray
const questionsArray = await questionsArrayFunc()

我希望这就是您所寻找的。可能还有其他方法,但我认为这可行。

关于javascript - 检索 MongoDB 集群的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60893714/

相关文章:

javascript - 灯箱展示大图

javascript - 如何在缓冲网格中设置加载存储

javascript - Gulp 和 Bower - 创建正确的文件结构

javascript - 即使使用await/async,执行顺序也不正确。内部代码完成后可以执行外部代码吗?

node.js - Nodejs 核心中的问题 : HTTP parser is eating all the cycles

node.js - 如何通过 $project 中提供的 _id 与 mongodb 聚合进行 $match?

node.js - 如何在传递一些上下文时在 expressjs 中重定向?

node.js - node-sass-middleware 未编译

mongodb - MongoDb 上的 Group By 聚合

java - 如何使用java在这个mongodb查询中使用 HashMap 编写