[英]How to find and print array of objects in mongoDB document
我在 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>
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.