您如何从 mongodb 获取单个项目并显示它? (默恩)
Posted
技术标签:
【中文标题】您如何从 mongodb 获取单个项目并显示它? (默恩)【英文标题】:How do you fetch a single item from mongodb and display it? (MERN) 【发布时间】:2021-07-08 02:44:03 【问题描述】:如何只从 mongodb 获取模块 1 并将其显示到 react 上?
const userSchema = new mongoose.Schema(
username: String,
password: String,
module1: Number,
module2: Number,
module3: Number,
module4: Number,
module5: Number,
module6: Number,
module7: Number,
module8: Number,
module9: Number,
module10: Number,
);
const User = mongoose.model("User", userSchema);
我已经看到了许多从 mongodb 获取项目数组并使用 .map 函数显示它的方法,但我只想将上面用户架构中的单个项目(模块 1)显示到我的 react 应用程序。
【问题讨论】:
mongoosejs.com/docs/api.html#model_Model.findOne | mongoosejs.com/docs/api.html#model_Model.findById 【参考方案1】:很久以前我就遇到过这个问题。希望这对你也有帮助!
-
首先,在您的 router.js 或 server.js 后端服务器/路由文件中,使用
Model.findOne()
/ Mondel.findById()
/ Model.find()
获取 MongoDB 中的数据。
现在我们在某个地方有了数据,假设我们将其存储在一个变量中,data
。
差不多了,我们现在必须让module1
密钥通过。你现在应该有 data = 类似这样的东西:
var data =
[
username: String,
password: String,
module1: Number,
module2: Number,
module3: Number,
module4: Number,
module5: Number,
module6: Number,
module7: Number,
module8: Number,
module9: Number,
module10: Number,
]
很简单,把它从数组中取出和对象,做var module 1 = data[0].module1
.Voila!在这里!
-
将
module1
发送到 React。由于我对react不太熟悉,请查看this和this。
【讨论】:
【参考方案2】:您可以通过以下方式从数据库中获取module1:
向前端发送数据的API:
const app = express(),
User = require('./models/User');
app.get('/api/user/:id', async (req, res) =>
const id = req.params;
const user = await User.findById(id);
res.json(
success: true,
user,
);
);
从 API 检索数据:
export default function ***()
import React, useEffect from 'react';
import axios from 'axios';
const getResponse = async () =>
const res = await axios.get(`http://localhost:3000/api/user/$userId`);
console.log(res.data.user.module1);
;
useEffect(() =>
getResponse();
, []);
return <div></div>;
或者通过这种方式:
向前端发送数据的API:
const app = express(),
User = require('./models/User');
app.get('/api/user/:id', async (req, res) =>
const id = req.params;
const module1 = await User.findById(id).select('-_id module1');
res.json(
success: true,
module1,
);
);
从 API 检索数据:
export default function ***()
import React, useEffect from 'react';
import axios from 'axios';
const getResponse = async () =>
const res = await axios.get(`http://localhost:3000/api/user/$userId`);
console.log(res.data.module1);
;
useEffect(() =>
getResponse();
, []);
return <div></div>;
【讨论】:
以上是关于您如何从 mongodb 获取单个项目并显示它? (默恩)的主要内容,如果未能解决你的问题,请参考以下文章
如何在页面上显示来自 mongodb 数据库的用户数据,编辑数据并再次保存
如何从API调用中选择单个JavaScript对象/ JSON项目
如何从 MongoDB 中具有多个集合的数据库中访问单个集合数据
带有 mgo 的 Go (golang) 中的 MongoDB:如何更新记录、确定更新是不是成功并在单个原子操作中获取数据?