我在 mongoDB 中有这个文档:
{
"_id": {
"$oid": "628f739398580cae9c21b44f"
},
"events": [
{
"eventName": "Dans",
"eventText": "Danse",
"eventDate": "010101"
},
{
"eventName": "Spill",
"eventText": "Spille",
"eventDate": "020202"
}
],
"school": "Høyskolen Kristiania"
}
我试图在他们自己的 div 中获取每个事件(名称、文本和日期),但似乎无法自己访问每个“块”。它们应该作为一个打印,并且仅在学校匹配的地方打印,我的目的是为每所学校制作不同的文档并从那里通过查询进行过滤。不过,这不是问题。我能够将它们全部作为一组对象或类似对象
{
[dev:server] _id: new ObjectId("628f739398580cae9c21b44f"),
[dev:server] events: [ [Object], [Object] ],
[dev:server] school: 'Høyskolen Kristiania'
[dev:server] }
我的 API 目前看起来像这样: 当然,名称将由 userinfo 发送,硬编码用于测试目的。
router.get("/", async (req, res) => {
const name = "Høyskolen Kristiania";
const schools = await mongoDatabase
.collection("tempschool")
.find()
.toArray();
console.log(schools);
res.json(schools);
});
我的客户:
function EventCard({ event }) {
const { eventName, eventDate, eventText } = event;
return (
<div>
<h1>{eventName}</h1>
<h3>{eventDate}</h3>
<div>{eventText}</div>
</div>
);
}
export function SchoolPage() {
const {loading, error, data} = useLoader(
async () => await fetchJSON("/api/schools")
);
const school = data;
if (loading) {
return <div>Loading...</div>;
}
if (error) {
return (
<div>Error</div>
);
}
return (
<div>
{school.map((event) => (
<div key={event.name}>
<EventCard event={event}/>
</div>
))}
</div>
);
}
我不知道你是否创建tempschool
了一个MongooseSchema
。你应该,然后你会查询它,
const school = await TempSchool.findOne({school: "Høyskolen Kristiania"});
school.events
然后会给你一个对象数组。您将在前端使用它作为
return(
<div>
school.events.map((event) => (
<div>
<h1>{event.eventName}</h1>
<h3>{event.eventDate}</h3>
<div>{event.eventText}</div>
</div>
)
)
</div>
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句