node.js - 从 MongoDb 获取数据并插入文件
问题描述
我构建了下一个文件:
var express = require('express');
var app = express();
app.set("view engine", "ejs");
app.use("/", function(request, response){
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("Test");
dbo.collection("users").findOne({},function(err, result) {
if (err) throw err;
console.log(result);
var name = result.name;
response.render('index',{ name});
db.close();
});
});
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="./index.js"></script>
<title>Document</title>
</head>
<body>
<h1 class="result"><%=name %></h1>
<script>
</script>
</body>
</html>
我从我的数据库中获取用户的名字:MongoDb,然后插入它 <h1 class="result"><%=name %></h1>
。如何从数据库中获取所有名称?现在我只得到第一个。
解决方案
因此,据我所知,问题是您想获取集合 users 中所有用户的名字。如果那是您想要实现的目标。也许我们应该首先了解为什么我们只获得一个用户。这很可能是因为方法。
dbo.collection("users").findOne({},function(err, result) {});
顾名思义,findOne 将只返回一个与作为方法 findOne 的第一个参数给出的条件相匹配的对象,在我们的例子中就是 {}。所以,在我们的例子中,它将返回用户集合中的第一个用户。要获取所有用户的列表,只需将 findOne 更改为简单地查找。在我们的情况下,这将是:
dbo.collection("users").find({},function(err, result) {});
推荐阅读
- video - 如何将 ffmpeg 与 vidstab 和 filter_complex 一起使用
- java - Java 关闭盒子
- python - 从 Python 中的许多目录中删除一组字符串
- html - 响应式 - 所有元素在移动设备上都太小了
- node.js - 我正在尝试将 Node.js 应用程序部署到 Google Cloud Platform,但发现 MongoDB 出现错误
- python-3.x - 计算每个字符串的出现次数并使用python并排打印eac编号和字符串
- r - 在 R 中,如何根据范围进行分组?
- javascript - Angular:通过登录页面进行 E2E 测试
- java - 使用 sinch 在 java 中发送短信
- image - 如何从来自 AWS S3 的撇号站点地图中排除资产