SlideShare a Scribd company logo
5 Things I Learned
While Modeling Data in
MongoDB
@Lauren_Schaefer | Staff Developer Advocate | MongoDB
@Lauren_Schaefer
Developer Advocate, MongoDB
@Lauren_Schaefer
Developer Advocate, MongoDB
Agenda
● App Demo
● Terms
● Data Model
● 5 Things I Learned
Agenda
● App Demo
● Terms
● Data Model
● 5 Things I Learned
😡
5 Things I Learned While Modeling Data in MongoDB
YouTube API
5 Things I Learned While Modeling Data in MongoDB
🤩
💻
5 Things I Learned While Modeling Data in MongoDB
YouTube API
YouTube API
YouTube API
App demo
@Lauren_Schaefer
Agenda
● App Demo
● Terms
● Data Model
● 5 Things I Learned
Document
{
first_name: "Lauren",
last_name: "Schaefer",
tik_tok: "Lauren_Schaefer"
}
@Lauren_Schaefer
Collection
{
first_name: "Lauren",
last_name: "Schaefer",
tik_tok: "Lauren_Schaefer"
}
{
first_name: "Lauren",
last_name: "Schaefer",
tik_tok: "Lauren_Schaefer"
}
{
first_name: "Lauren",
last_name: "Schaefer",
tik_tok: "Lauren_Schaefer"
}
Users
@Lauren_Schaefer
Database {
…
}
{
…
}
{
…
}
{
…
}
{
…
}
{
…
}
{
…
}
{
…
}
{
…
}
@Lauren_Schaefer
Agenda
● App Demo
● Terms
● Data Model
● 5 Things I Learned
The Data Model
● youtube_videos collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
@Lauren_Schaefer
YouTube
API
The Data Model
● youtube_videos collection
@Lauren_Schaefer
YouTube
API
The Data Model
● youtube_videos collection
@Lauren_Schaefer
YouTube
API
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": 2020-09-30T15:05:30.000+00:00,
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
YouTube
API
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
YouTube
API
The Data Model
● youtube_videos collection
● youtube_stats collection
@Lauren_Schaefer
YouTube
API
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
@Lauren_Schaefer
@Lauren_Schaefer
Agenda
● App Demo
● Terms
● Data Model
● 5 Things I Learned
Duplicating data is
scary—even for those of
us who have been
coaching others to do
so @Lauren_Schaefer
Data that is accessed
together should be
stored together
@Lauren_Schaefer
Two API Calls
● List of videos
● Video stats
@Lauren_Schaefer
5 Things I Learned While Modeling Data in MongoDB
5 Things I Learned While Modeling Data in MongoDB
Retrieving Data
{
...
}
{
...
}
{
...
}
{
...
}
{
...
}
{
...
}
{
...
}
youtube_videos youtube_stats
@Lauren_Schaefer
Retrieving Data
{
...
}
{
...
}
{
...
}
{
...
}
{
...
}
{
...
}
{
...
}
$lookup
youtube_videos youtube_stats
@Lauren_Schaefer
Extended Reference Pattern
{
"_id":"8CZs-0it9r4",
"isDA": true,
...
"snippet": {
"title": "Schema Design
Anti-Patterns - Part 1",
"description": "When
modeling your data in
MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos youtube_stats
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"title": "Schema Design
Anti-Patterns - Part 1",
"stats": [
{
"date": 2020-12-01,
"views": 21,
"likes": 1
...
},
...
]
}
Duplicating data is not as scary when...
● You are confident which data needs to be duplicated
● You use Atlas triggers, change streams, or transactions to make sure the data
remains consistent
@Lauren_Schaefer
Cleaning data you
receive from APIs will
make working with the
data easier
@Lauren_Schaefer
5 Things I Learned While Modeling Data in MongoDB
@Lauren_Schaefer
🤔
{
"_id":"8CZs-0it9r4",
"kind": "youtube#playlistItem",
"isDA": true,
...
"snippet": {
"publishedAt": "2020-09-30T15:05:30Z",
"channelId": "UCK_m2976Yvbx-TyDLw7n1WA",
"title": "Schema Design Anti-Patterns - Part 1",
"description": "When modeling your data in MongoDB...",
"thumbnails": {
...
},
...
}
}
youtube_videos
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": "12",
"year": "2020",
"videoId": "8CZs-0it9r4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
@Lauren_Schaefer
video.snippet.publishedAt = new Date(video.snippet.publishedAt);
get_all_youtube_videos
@Lauren_Schaefer
If you're pulling data from an API...
● Consider remodeling or reformatting the data before storing it
@Lauren_Schaefer
Optimizing for your use
case is really hard when
you don't fully know
what your use case will
be @Lauren_Schaefer
5 Things I Learned While Modeling Data in MongoDB
5 Things I Learned While Modeling Data in MongoDB
@Lauren_Schaefer
Data that is accessed
together should be
stored together
@Lauren_Schaefer
Data that is accessed
together should be
stored together
@Lauren_Schaefer
@Lauren_Schaefer
{
"_id": "8CZs-0it9r4_2020_12",
"month": 12,
"year": 2020,
"videoId": "8CZs-0it9r4",
"fiscal_year_quarter": "FY21Q4",
"stats": [
{
"date": 2020-12-01T00:00:00.000+00:00,
"views": 21,
"likes": 1
...
},
{
"date": 2020-12-02T00:00:00.000+00:00,
"views": 29,
"likes": 1
...
},
...
]
}
youtube_stats
@Lauren_Schaefer
When modeling data in MongoDB...
● Model for your use case
● Remodel easily due to MongoDB's flexible schema
@Lauren_Schaefer
There is no "right way"
to model your data
@Lauren_Schaefer
5 Things I Learned While Modeling Data in MongoDB
5 Things I Learned While Modeling Data in MongoDB
5 Things I Learned While Modeling Data in MongoDB
💪
🤔
🆗
When modeling data in MongoDB...
● Don't let the flexibility freak you out
● Use schema validation
@Lauren_Schaefer
Determine how much you
want to tweak your data
model based on the ease of
working with the data and
your performance
requirements @Lauren_Schaefer
There is no "right way"
to model your data
@Lauren_Schaefer
When is your data
model good enough?
@Lauren_Schaefer
When is your data model good enough?
❏ Is the ease of working with the data good enough?
@Lauren_Schaefer
When is your data model good enough?
✓ Is the ease of working with the data good enough?
@Lauren_Schaefer
When is your data model good enough?
✓ Is the ease of working with the data good enough?
❏ Is the app's performance good enough?
@Lauren_Schaefer
When is your data model good enough?
✓ Is the ease of working with the data good enough?
✓ Is the app's performance good enough?
@Lauren_Schaefer
@Lauren_Schaefer
@Lauren_Schaefer
Duplicating data is
scary—even for those of us
who have been coaching
others to do so
@Lauren_Schaefer
Cleaning data you receive
from APIs will make working
with the data easier
@Lauren_Schaefer
Optimizing for your use case
is really hard when you don't
fully know what your use
case will be
@Lauren_Schaefer
There is no "right way" to
model your data
@Lauren_Schaefer
Determine how much you
want to tweak your data
model based on the ease of
working with the data and
your performance
requirements
@Lauren_Schaefer
@Lauren_Schaefer
Data Modeling Resources
Free MongoDB University Course: M320: Data Modeling
Article Series: MongoDB Schema Design Patterns
YouTube Video Series: MongoDB Schema Design Anti-Patterns
Article Series: MongoDB Schema Design Anti-Patterns
Got a Question? MongoDB Community
@Lauren_Schaefer
Remember 💡
Every use case is different,
so every data model will be
different. Focus on how
your app will use the data.
@Lauren_Schaefer
Remember 💡
Every use case is different,
so every data model will be
different. Focus on how
your app will use the data.
Let's connect on social
linktr.ee/lauren_schaefer
@Lauren_Schaefer

More Related Content

PPTX
ReadingSEO - 5th september 2019
PPTX
Boss hack u-iit-madras-2012
PDF
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)
PDF
Google Machine Learning APIs - puppies or muffins?
PDF
H2O World - Data Science in Action @ 6sense - Viral Bajaria
PPTX
Looking at Content Recommendations through a Search Lens - Extended Version
PPTX
Document Model for High Speed Spark Processing
KEY
Google+ platform (9-15-2011)
ReadingSEO - 5th september 2019
Boss hack u-iit-madras-2012
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)
Google Machine Learning APIs - puppies or muffins?
H2O World - Data Science in Action @ 6sense - Viral Bajaria
Looking at Content Recommendations through a Search Lens - Extended Version
Document Model for High Speed Spark Processing
Google+ platform (9-15-2011)

Similar to 5 Things I Learned While Modeling Data in MongoDB (20)

PDF
Semantic Optimization with Structured Data - SMX Munich
PPTX
Harvesting Social Media (in BESOCIAL)
PDF
Machine learning with Google machine learning APIs - Puppy or Muffin?
PDF
HackMIT Presentation
KEY
Introducing Hangout Apps
PPTX
Partner Webinar: Recommendation Engines with MongoDB and Hadoop
PDF
Spark and MongoDB
PDF
Overview of the Living Labs for IR Evaluation (LL4IR) CLEF Lab
PPTX
The Flash Facebook Cookbook - FlashMidlands
PDF
CloudML talk at DevFest Madurai 2016
PPTX
EIA2017Portugal - Andres L. Martinez Ortiz - Curating Content with Google Mac...
PPTX
API Design - 3rd Edition
PDF
Creating Rich Multi-Screen Experiences on Android with Amazon Fling - Mario V...
PDF
My Journey into the Terrifying World of Hypermedia
PDF
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
PDF
Blazing Fast Analytics with MongoDB & Spark
PDF
MongoDB Days Silicon Valley: Data Analysis and MapReduce with MongoDB
PDF
Montreal Elasticsearch Meetup
PDF
Apache Solr for TYPO3 what's new 2018
PDF
Search at SoundCloud
Semantic Optimization with Structured Data - SMX Munich
Harvesting Social Media (in BESOCIAL)
Machine learning with Google machine learning APIs - Puppy or Muffin?
HackMIT Presentation
Introducing Hangout Apps
Partner Webinar: Recommendation Engines with MongoDB and Hadoop
Spark and MongoDB
Overview of the Living Labs for IR Evaluation (LL4IR) CLEF Lab
The Flash Facebook Cookbook - FlashMidlands
CloudML talk at DevFest Madurai 2016
EIA2017Portugal - Andres L. Martinez Ortiz - Curating Content with Google Mac...
API Design - 3rd Edition
Creating Rich Multi-Screen Experiences on Android with Amazon Fling - Mario V...
My Journey into the Terrifying World of Hypermedia
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
Blazing Fast Analytics with MongoDB & Spark
MongoDB Days Silicon Valley: Data Analysis and MapReduce with MongoDB
Montreal Elasticsearch Meetup
Apache Solr for TYPO3 what's new 2018
Search at SoundCloud
Ad

More from Lauren Hayward Schaefer (20)

PDF
7 Ways to Build an API that Developers Will Hate
PDF
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...
PDF
10 Best Practices for Writing Documentation (For Those Who Would Rather Do An...
PDF
Intro to Technical Writing: Creating Content that Google and Readers will Love
PDF
Level Up Your Technical Career by Writing
PDF
How to Raise Your Profile Worksheet
PPTX
How to Raise Your Profile as a Developer (And Why You Should Bother!)
PDF
Building CI/CD Pipelines for MongoDB Realm Apps
PDF
From Tables to Documents—Changing Your Database Mindset
PDF
NoSQL for Startups
PDF
Back to Basics 2021
PDF
DevOps + MongoDB Realm Serverless Functions = 🤩
PDF
Stop! Don't make these mistakes in your document database!
PPTX
From Tables to Documents—Changing Your Database Mindset
PPTX
From Tables to Documents -- Changing Your Database Mindset
PDF
Making #RemoteWork Actually Work
PPTX
DevOps + MongoDB Serverless = 
PDF
MongoDB: Back to Basics
PPTX
Intro to MongoDB Workshop
PPTX
Jumpstart! From SQL to NoSQL -- Changing Your Mindset
7 Ways to Build an API that Developers Will Hate
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...
10 Best Practices for Writing Documentation (For Those Who Would Rather Do An...
Intro to Technical Writing: Creating Content that Google and Readers will Love
Level Up Your Technical Career by Writing
How to Raise Your Profile Worksheet
How to Raise Your Profile as a Developer (And Why You Should Bother!)
Building CI/CD Pipelines for MongoDB Realm Apps
From Tables to Documents—Changing Your Database Mindset
NoSQL for Startups
Back to Basics 2021
DevOps + MongoDB Realm Serverless Functions = 🤩
Stop! Don't make these mistakes in your document database!
From Tables to Documents—Changing Your Database Mindset
From Tables to Documents -- Changing Your Database Mindset
Making #RemoteWork Actually Work
DevOps + MongoDB Serverless = 
MongoDB: Back to Basics
Intro to MongoDB Workshop
Jumpstart! From SQL to NoSQL -- Changing Your Mindset
Ad

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Big Data Technologies - Introduction.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Electronic commerce courselecture one. Pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Spectroscopy.pptx food analysis technology
PPT
Teaching material agriculture food technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Approach and Philosophy of On baking technology
PDF
Unlocking AI with Model Context Protocol (MCP)
Cloud computing and distributed systems.
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
NewMind AI Weekly Chronicles - August'25 Week I
sap open course for s4hana steps from ECC to s4
Big Data Technologies - Introduction.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Electronic commerce courselecture one. Pdf
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectroscopy.pptx food analysis technology
Teaching material agriculture food technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Mobile App Security Testing_ A Comprehensive Guide.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Approach and Philosophy of On baking technology
Unlocking AI with Model Context Protocol (MCP)

5 Things I Learned While Modeling Data in MongoDB