Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.
-
Upload
clemence-brooks -
Category
Documents
-
view
267 -
download
1
Transcript of Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.
![Page 1: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/1.jpg)
Advanced MongoDB & FireDAC
Jim McKeeth & Dmitry Arefiev Embarcadero Technologies
![Page 2: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/2.jpg)
2
• Indexing• Query Options• Geospatial Queries• Aggregation & Pipelines
• Redact• Projection• Grouping
• Update Operations• Database Meta Information• Local SQL
Agenda – The Fun Stuff
2:0910:2612:2319:29
27:1631:3133:19
Code Samples are all Object Pascal
delphi.org/?p=2053
Slidesdelphi.org/coderage
Q&A at 39:03
![Page 3: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/3.jpg)
3
Indexing
• _id is indexed by default as _id_• Other indexes can be added to improve query performance• MongoDB uses a B-Tree internally for indexing• Use the Query Option to get an Explain Plan• Docs• http://docs.mongodb.org/manual/administration/indexes-creation/• http://docs.mongodb.org/manual/tutorial/create-an-index/ • http://docs.mongodb.org/manual/tutorial/create-a-compound-index/• http://docs.mongodb.org/manual/tutorial/list-indexes/• http://docs.mongodb.org/manual/tutorial/remove-indexes/• http://docs.mongodb.org/manual/reference/method/cursor.explain/
![Page 4: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/4.jpg)
4
Geospatial Indexes and Queries
• Supports both spherical and planar geometries– 2d: geometries on a plane– 2dsphere: geometries of an earth-like sphere
• Query operations– Within a bounding geometry– Intersecting geometry– Near a point
• More information– http://docs.mongodb.org/manual/applications/geospatial-indexes/– http://docs.mongodb.org/manual/reference/operator/query-geospatial
/
![Page 5: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/5.jpg)
5
Aggregation Pipeline
• Operations that process data along a series of steps• Change the format of or further process documents resulting from a
query• Documents enter the pipeline and are transformed into an aggregated
result• A less complex alternative to map-reduce (also supported)• FireDAC supports through the TFDMongoPipeline and Aggregate methods• References
– http://docs.mongodb.org/manual/aggregation/– http://docs.mongodb.org/manual/reference/operator/aggregation/
![Page 6: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/6.jpg)
6
Aggregation Example
• Runs through stages• Typically starts with a
match• Example shows
grouping• Resulting collection
contains modified documents
• Makes documents easier to work with in program logic
• Underlying collection is unmodified
![Page 7: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/7.jpg)
7
Update Operations
• Modifies an existing document or documents in a collection.• Can modify specific fields of an existing document or documents or replace
an existing document entirely.• Can replace with static or dynamic operator generated values.• Updates are atomic within a single document.• More information
– http://docs.mongodb.org/manual/tutorial/modify-documents/ – http://docs.mongodb.org/manual/reference/method/db.collection.updat
e/
– http://docs.mongodb.org/manual/reference/operator/update/inc/– http://docs.mongodb.org/manual/reference/operator/update/push/
![Page 8: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/8.jpg)
8
Learning Resources
• MongoDB Documentation– docs.mongodb.org/manual/
• MongoDB Skill Sprint– embt.co/sprint-nosql-mongodb
• Part 1 from CodeRage X• DocWiki
– docwiki.embarcadero.com/RADStudio/Seattle/en/What%27s_New#Support_for_the_NoSQL_MongoDB_Database
– docwiki.embarcadero.com/RADStudio/Seattle/en/Connect_to_MongoDB_Database_(FireDAC)
– docwiki.embarcadero.com/CodeExamples/Seattle/en/FireDAC.MongoDB_Explore_Sample
– docwiki.embarcadero.com/Libraries/Seattle/en/FireDAC.Phys.MongoDBWrapper
• Samples– \Samples\Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB
Code Samples delphi.org/?p=2053
Slidesdelphi.org/coderage
![Page 9: Advanced MongoDB & FireDAC Jim McKeeth & Dmitry Arefiev Embarcadero Technologies.](https://reader036.fdocuments.in/reader036/viewer/2022081417/5697bfc31a28abf838ca567c/html5/thumbnails/9.jpg)
9
Q&A – Thanks for Joining Us!
The places to communicate:• Quality.Embarcadero.com• Embarcadero FireDAC forum
– https://forums.embarcadero.com/forum.jspa?forumID=502 • Email
– [email protected] & [email protected] • Code Samples
– delphi.org/?p=2053 • Slides
– delphi.org/coderage