首页 > 解决方案 > 如何从 mongoDB 取回数据并正确显示?

问题描述

从 mongoDB 获取数据后,如何显示它。
例如,我有一个简单的 hbs 模板

//index.hbs
{{# each user}}                 
         <div >
            <h5>{{ user.firstName }}</h5>
         </div>
         <div >
            <h5>{{ user.lastName }}</h5>
         </div>     
{{/each}}

现在我可以使用 find.() 从 mongoDB 获取记录

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
mongoose.connect("connection string");
var userSchema = new Schema({
  "firstName":  String,
  "lastName": String,
  "locationID": Number
});

var User = mongoose.model("Users", userSchema);

User.find({ locationID: 1}).exec().then((data)=>{
console.log(data);
});

另外,如何从 mongoDB 中获取所有数据。不使用 find()。搜索条件。

标签: javascriptnode.jsmongodbexpresshandlebars.js

解决方案


这是用于检索给定集合中的所有文档的更简洁的代码。您应该能够在 Postman 中对此进行测试,以验证它是否为您提供了所需的结果——这就是我在末尾包含 res.status().json() 的原因。

const getUsers = async (req, res, next) => {
    

    const users = await User.find().exec();
    res.status(200).json({
      status: 'success',
      results: doc.length,

      data: {
        data: users,
      },
    });
  };

另外请注意:不要使用 var 因为这是不好的做法。它会导致范围界定问题,使全局命名空间混乱,并且是错误的来源。使用 let 或 const。此外,在执行异步操作时,请使用 async await,因为它使代码更具可读性。


推荐阅读