ការស្រង់​យក​ទិន្នន័យ​ពី​បណ្តុំ​ទិន្នន័យ អាច​ត្រូវ​ធ្វើឡើង​ដោយ​ប្រើប្រាស់​ក្បួន​ getCollection( ) និងក្បួន getEntry( ) ។ ក្បួន​ទាំងពីរ​នេះ​ជា​ក្បួ​ន​មាន​ស្រាប់​នៅ​ក្នុង​កញ្ចប់ Astro.js ​​​​​​​​​​​​​​​​​​​​​​​​​​​​។ ក្បួន getCollection( ) ត្រូវ​ប្រើប្រាស់​សំរាប់​ស្រង់​យក​បណ្តុំ​ទិន្នន័យ​ទាំងមូល និង​ក្បួន getEntry( ) ត្រូវ​ប្រើប្រាស់​សំរាប់​ស្រង់​យក​ទិន្នន័យ​នៅ​ក្នុង​ឯកសារ​ណា​មួយ​។

 

<!--src/pages/index.astro-->
---
import Base from "../layouts/Base.astro"
import { getCollection, getEntry } from 'astro:content'
const posts = await getCollection('posts')
const post = await getEntry('posts', 'post-1')
---

<Base pageTitle="ទំព័រ​ដើម" pageURL="/" >
    <p>​​​​​​​​​​​​​​​​ការស្រង់​យក​​បណ្តុំ​ទិន្នន័យ {posts[0].data.title}</p>
    <p>ការស្រង់​យក​ទិន្នន័យ​ទោល {post.data.title}</p>
</Base>

 

បណ្តុំ​ទិន្នន័យ​បាន​មក​ពី​ការប្រើប្រាស់​ក្បួន getCollection( ) គឺ​ជា​កំរង​ទិន្នន័យ​នៃ​ឯកសារ​ទិន្នន័យ​ទាំងឡាយដែល​មាន​លេខរៀង​ច្បាស់​លាស់​សំគាល់ទីតាំង​របស់​វា​នៅ​ក្នុង​បណ្តុំ​ទិន្នន័យ​។ ដូចនេះ​ ការយក​ទិន្នន័យ​នៅ​ក្នុង​ឯកសារ​ណា​មួយ​មក​ប្រើ ចាំបាច់​ត្រូវ​ធ្វើ​ឡើង​តាម​រយៈ​លេខ​រៀង​របស់​វា​។ មួយ​វិញ​ទៀត នៅ​ពេល​ស្រង់​យក​ទិន្នន័យ​នៃ​ឯកសារ​ណា​មួយ​មក​ប្រើ ទិន្នន័យ​នៅ​ក្នុង frontmatter របស់​វា ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ត្រូវដាក់​បញ្ចូល​ទៅ​ក្នុង​សំណុំ​ទិន្នន័យ data ។ ចំណែក​ឯទិន្នន័យ​ជា​ភាសា MD អាច​ត្រូវ​ស្រង់​យក​មក​ប្រើ​បាន​ តាម​រយៈ​ក្បួន render( ) ដែល​បាន​កែ​ទិន្នន័យ​នេះ​​អោយ​ទៅ​ជា​សមាសភាគ Content ។

 

<!--src/pages/index.astro-->
---
import Base from "../layouts/Base.astro"
import { getCollection, getEntry } from 'astro:content'
const posts = await getCollection('posts')
const post = await getEntry('posts', 'post-1')
const {Content} = await post.render()
---

<Base pageTitle="ទំព័រ​ដើម" pageURL="/" >
    <Content/>
</Base>

 

ចំណែក​ឯទិន្នន័យ​ដែល​ជា​ឯកសារ​យោង យើង​ចាំបាច់​ត្រូវ​ស្រង់​យក​វា​ជា​លើក​ទី​ពី​រ​ទៀត ទើប​អាច​យក​វា​មក​ប្រើ​បាន​។

 

<!--src/pages/index.astro-->
---
import Base from "../layouts/Base.astro"
import { getCollection, getEntry } from 'astro:content'
const post = await getEntry('posts', 'post-1')
const vidObj = await getEntry(post.data.videos)
---

<Base pageTitle="ទំព័រ​ដើម" pageURL="/" >
    <p>ប្រភេទ​នៃ​វិដេអូ៖ {vidObj.data.videos[0].vidType}</p>
</Base>

 

ក្រៅ​ពី​ការស្រង់​យក​ទិន្នន័យ​ទាំងអស់​នៅ​ក្នុង​បណ្តុំ​ទិន្នន័យ យើង​អាច​ប្រើក្បួន getCollection( ) ស្រង់​យក​តែ​ទិន្នន័យ​ណា​ដែល​យើង​ត្រូវការ ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖

 

<!--src/pages/index.astro-->
---
import Base from "../layouts/Base.astro"
import { getCollection, getEntry } from 'astro:content'
const posts = await getCollection('posts', ({ data }) => {
    return data.categories.includes('news')
})
---

<Base pageTitle="ទំព័រ​ដើម" pageURL="/" >
    <p>{posts && posts[0]?.data.categories.toString()}</p>
</Base>