Python programlama diline şöyle hızlıca bir göz atmak için inceleyebilirsiniz.
Blog : http://www.cihanozhan.com
#python #programming #pythonprogramming #pythonprogramminglanguage #py #makineöğrenmesi #görüntüişleme #computervision #deeplearning #machinelearning #programminglanguages
Bu seminerde Go programlama diline hızlı bir bakış attık. 2017'de verdiğim Go seminerinin bağlantısına da bu sunumun kaynaklar kısmından ulaşabilirsiniz.
www.cihanozhan.com
www.deeplab.co
www.darkfactory.co
Introduction to MongoDB and CRUD operationsAnand Kumar
Learn about MongoDB basics, its advantages, history.
Learn about the installation of MongoDB.
Learn Basics of create,insert,update,delete documents in MongoDB.
Learn basics of NoSQL.
Python programlama diline şöyle hızlıca bir göz atmak için inceleyebilirsiniz.
Blog : http://www.cihanozhan.com
#python #programming #pythonprogramming #pythonprogramminglanguage #py #makineöğrenmesi #görüntüişleme #computervision #deeplearning #machinelearning #programminglanguages
Bu seminerde Go programlama diline hızlı bir bakış attık. 2017'de verdiğim Go seminerinin bağlantısına da bu sunumun kaynaklar kısmından ulaşabilirsiniz.
www.cihanozhan.com
www.deeplab.co
www.darkfactory.co
Introduction to MongoDB and CRUD operationsAnand Kumar
Learn about MongoDB basics, its advantages, history.
Learn about the installation of MongoDB.
Learn Basics of create,insert,update,delete documents in MongoDB.
Learn basics of NoSQL.
Intro to MongoDB
Get a jumpstart on MongoDB, use cases, and next steps for building your first app with Buzz Moschetti, MongoDB Enterprise Architect.
@BuzzMoschetti
Docker Kubernetes Istio
Understanding Docker and creating containers.
Container Orchestration based on Kubernetes
Blue Green Deployment, AB Testing, Canary Deployment, Traffic Rules based on Istio
This slide deck talks about Elasticsearch and its features.
When you talk about ELK stack it just means you are talking
about Elasticsearch, Logstash, and Kibana. But when you talk
about Elastic stack, other components such as Beats, X-Pack
are also included with it.
what is the ELK Stack?
ELK vs Elastic stack
What is Elasticsearch used for?
How does Elasticsearch work?
What is an Elasticsearch index?
Shards
Replicas
Nodes
Clusters
What programming languages does Elasticsearch support?
Amazon Elasticsearch, its use cases and benefits
MongoDB is the most famous and loved NoSQL database. It has many features that are easy to handle when compared to conventional RDBMS. These slides contain the basics of MongoDB.
History and Basics of containers, LXC, Docker and Kubernetes. This presentation is given to Engineering colleage students at VIT DevFest 2018. Beginner to Intermediate level.
DevOps is an increasingly useful tool for achieving business objectives, enabling your teams to work together to improve the efficiency and quality of software delivery. However, despite its growing popularity, there is still a lack of clarity over what DevOps actually means, how organizations should do it and what's the best way to get started.
DevOps 101 takes a brief look at the history of DevOps, why it started, what problems it is intended to solve and how you can start implementing it.
The slides were delivered by James Betteley, Head of Education at the DevOpsGuys in a one-hour webinar. The full recording is available here - https://youtu.be/4gC3WpbetKs?t=2s
James has spent the last few years neck-deep in the world of DevOps transformation, helping a wide range of organizations optimize the way they collaborate to deliver better software, faster. James was joined by Elizabeth Ayer, Portfolio Manager, from Redgate Software. Elizabeth looks after a range of Redgate products that help teams extend their DevOps practices to SQL Server databases.
For more information visit www.devopsguys.com and www.red-gate.com
Intro to MongoDB
Get a jumpstart on MongoDB, use cases, and next steps for building your first app with Buzz Moschetti, MongoDB Enterprise Architect.
@BuzzMoschetti
Docker Kubernetes Istio
Understanding Docker and creating containers.
Container Orchestration based on Kubernetes
Blue Green Deployment, AB Testing, Canary Deployment, Traffic Rules based on Istio
This slide deck talks about Elasticsearch and its features.
When you talk about ELK stack it just means you are talking
about Elasticsearch, Logstash, and Kibana. But when you talk
about Elastic stack, other components such as Beats, X-Pack
are also included with it.
what is the ELK Stack?
ELK vs Elastic stack
What is Elasticsearch used for?
How does Elasticsearch work?
What is an Elasticsearch index?
Shards
Replicas
Nodes
Clusters
What programming languages does Elasticsearch support?
Amazon Elasticsearch, its use cases and benefits
MongoDB is the most famous and loved NoSQL database. It has many features that are easy to handle when compared to conventional RDBMS. These slides contain the basics of MongoDB.
History and Basics of containers, LXC, Docker and Kubernetes. This presentation is given to Engineering colleage students at VIT DevFest 2018. Beginner to Intermediate level.
DevOps is an increasingly useful tool for achieving business objectives, enabling your teams to work together to improve the efficiency and quality of software delivery. However, despite its growing popularity, there is still a lack of clarity over what DevOps actually means, how organizations should do it and what's the best way to get started.
DevOps 101 takes a brief look at the history of DevOps, why it started, what problems it is intended to solve and how you can start implementing it.
The slides were delivered by James Betteley, Head of Education at the DevOpsGuys in a one-hour webinar. The full recording is available here - https://youtu.be/4gC3WpbetKs?t=2s
James has spent the last few years neck-deep in the world of DevOps transformation, helping a wide range of organizations optimize the way they collaborate to deliver better software, faster. James was joined by Elizabeth Ayer, Portfolio Manager, from Redgate Software. Elizabeth looks after a range of Redgate products that help teams extend their DevOps practices to SQL Server databases.
For more information visit www.devopsguys.com and www.red-gate.com
Verinin temsili, işlenmesi, saklanmasında gelişen ve değişen
koşullar ele alındıktan sonra, büyük verinin işlenmesi konusu
ele alınıyor.
Verinin anlamlandırılması konusunda değişen terimler, ünvanlar, algoritmalar, kullanılan aletler konusunda değerlendirmeler paylaşıldı.
sunumun videosuna aşağıdaki adresten ulaşabilirsiniz.
https://www.youtube.com/watch?v=pnvvMU8L-O0
Blockchain : Decentralized Application Development (Turkish)Cihan Özhan
www.cihanozhan.com
*It is the presentation of my blockchain event that I presented in 2019.
Teknopark Istanbul Announcement : https://www.teknoparkistanbul.com.tr/egitimler/blockchain-decentralized-uygulama-gelistirme-sunumu
3. MongoDB Nedir?
• MongoDB bir döküman veritabanıdır.
• NoSQL veritabanları ile girişte görüldüğü gibi, satırların(veya MongoDB'de dökümanlar) önceden
tanımlanmış şemaya sahip olmasına gerek yoktur.
• MongoDB'de bulunan veri modeli, hiyerarşik ilişkileri temsil etmenize, dizileri depolamanıza ve diğer
daha karmaşık yapıları daha kolay bir şekilde göstermenize olanak tanır.
• MongoDB ortamları oldukça ölçeklenebilir.
4. MongoDB Geçmişi
• MongoDB, 2007 yılında Eliot Horowitz ve Dwight Merriman tarafından geliştirildi.
• Dwight Merriman'a göre bu veritabanı adı, büyük miktarda veriyi işleme fikrini desteklemek için
humongous kelimesinden türetildi.
• 2009 yılında MongoDB açık kaynaklı bir proje olarak yapılırken, şirket ticari destek hizmetleri
sunmuştur.
– Pek çok şirket, şaşırtıcı birçok özelliği için MongoDB'yi kullanmaya başladı.
• New York Times gazetesi, fotoğrafları göndermek için web tabanlı bir uygulama oluşturmak için
MongoDB'yi kullandı.
• MongoDB'nin ilk hazır üretimi, Mart 2010'da piyasaya sürülen 1.4 sürümünden düşünüldü.
• 2013 yılında şirket resmi olarak MongoDB Inc.'e seçildi.
• Bundan sonra MongoDB 2.4.9, 10 Ocak 2014'te yayınlandı.
• MongoDB 4.0.3, mevcut en son ve kararlı sürümdür.
5. MongoDB'de Genel Terimler
• _id
– The _id field represents a unique value in the MongoDB document. The _id fields is like the document's primary key.
• collection
– Bu, MongoDB dökümanlarından oluşan bir gruptur.
• cursor
– Bu, bir sorgunun sonuç kümesine bir göstericidir.
• database
– Bu, koleksiyonlar için bir kaptır. Her veritabanı, dosya sisteminde kendi dosya kümesini alır.
• document
– MongoDB koleksiyonundaki bir kayda temelde belge denir.
• field
– Bir belgedeki ad-değer çiftidir.
6.
7. MongoDB Kullanan Kuruluşlar
• MongoDB'yi iş uygulamalarının çoğu için veritabanı olarak kullanan bazı büyük ve önemli kuruluşlar
aşağıdadır:
– LinkedIn
– eBay
– SAP
– Adobe
– McAfee
– FourSquare
– MetLife
8. MongoDB'nin Özellikleri
• Ad-Hoc Sorgu Desteği
• Aggregation
• Yüksek Performans
• Yatay Ölçeklenebilirlik (Horizontal Scalability)
• Geniş Media Desteği
• Yük Dengeleme (Load Balancing)
• Replication
• Index
• GridFS
• MapReduce
• Auto-Sharding
9. MongoDB'nin Avantajları
• Open Source
• Parçalama (Sharding)
• Daha Hızlı İşlem(Process)
• Schemaless
• Document-Based
• No SQL Injection
10. MongoDB vs. MySQL
MongoDB MySQL
Birçok alternatif veri modeli İlişkisel veritabanı yönetim sistemi
Schemaless Schema
Atomikliği destekler Transactional Relational Data Store
JSON query SQL
Server-Side Scripting Stored Procedures Implemented
Yüksek Ölçekli Ölçeklenebilir Değil
Daha Hızlı Daha Yavaş
11. MongoDB vs. Cassandra
Cassandra MongoDB
Cassandra, yüksek performanslı dağıtılmış
veritabanı sistemidir.
MongoDB, platformlar arası döküman odaklı
veritabanı sistemidir.
Cassandra Java ile yazılmıştır. MongoDB, C++ ile yazılmıştır
Cassandra, verileri SQL biçimi gibi tablo
biçiminde depolar.
MongoDB, verileri JSON biçiminde depolar.
Cassandra Apache lisansına sahiptir. MongoDB, AGPL lisansına ve Apache
driver’larına sahiptir.
Cassandra temelde büyük miktarda veriyi
işlemek için tasarlanmıştır.
MongoDB, JSON benzeri dökümanlarla başa
çıkmak ve uygulamalara daha kolay ve daha
hızlı erişmek için tasarlanmıştır.
Cassandra, tek bir hata noktası olmadan
yüksek kullanılabilirlik sağlar.
MongoDB'nin başarısızlık durumunda
yönetilmesi kolaydır.
12. MongoDB CouchDB
Document-Based modeli takip ederse ve
veriler JSON formatında sunulur.
Document-oriented modeli takip ederse ve
veriler JSON formatında sunulur.
Binary protokol ve TCP/IP üzerinden özel
protokol kullanır.
HTTP/REST tabanlı arayüz kullanır. Çok
sezgiseldir ve çok iyi tasarlanmıştır.
Veritabanı koleksiyonları ve koleksiyon
dökümanları içerir.
CouchDB'de veritabanı dökümanları içerir.
MongoDB, collection + object-based sorgu dili
oluşturarak Map/Reduce(JavaScript)'i izler.
Map/Reduce sorgu yöntemini izler. (JavaScript
+ Diğerleri)
master-slave replication’ı destekler. Custom conflict resolution function’lar ile
master-master çoğaltmayı destekler.
Yerinde güncelleme MVVC’yi takip eder.(Multi Version Concurrency
Control)
MongoDB tutarlılığı destekler. Availability’I destekler.
MongoDB son derece tutarlıdır. CouchDB tutarlıdır.
C++ ile geliştirildi. Erlang dilinde yazıldı.
MongoDB vs. CouchDB
13. MongoDB Redis
Document-store yapısını takip eden en popüler
NoSQL veritabanlarından biridir.
Veritabanı, önbellek ve mesaj aracısı olarak
kullanılan bellek içi veri yapısı deposudur.
Document-store modelini takip eder. Redis, key-value store modelini takip eder.
MongoDB Inc. tarafından geliştirilmiştir. Salvatore Sanfilippo tarafından geliştirildi.
Ücretsiz ve açık kaynaklıdır. Subscription-based ve açık kaynaklıdır.
C++ ile geliştirildi. Redis, C dilinde yazılmış ve uygulanmıştır.
Sunucu işletim sistemleri Linux, OS X, Solaris,
Windows'dur.
Sunucu işletim sistemleri BSD, Linux, OS X,
Windows'dur.
İkincil index içerir. İkincil index desteklemez.
JSON kullan. Proprietary Protocol’ü takip eder. Proprietary Protocol’ü takip eder.
Sunucu Tarafı komut dosyası JavaScript'tir Redis'teki Sunucu Tarafı komut dosyası Lua’dır.
MapReduce var. MapReduce'a sahip değil
MongoDB vs. Redis
14. MongoDB Redis
Nihai Tutarlılık Eventual Consistency ve Immediate Consistency
Kullanıcılar ve roller için erişim hakları. Basit password-based erişim kontrolü
Yeni nesil veritabanı olarak kabul ediliyor. Dünyanın en hızlı veritabanı olarak
derecelendirilmiştir.
MongoDB, günümüz uygulamalarının
gerektirdiği esneklik, ölçek ve performansın
yanı sıra geleneksel veritabanlarının en
iyisini sağlar.
Redis, bir bellek içi veritabanı platformudur;
strings, hashes, sets, lists, sorted sets, bitmaps,
hyperloglogs ve geospatial index gibi çok çeşitli
veri yapıları için destek sağlar.
30 milyon indirme(her gün binlerce indirme
ile artıyor). Fortune 100'ün üçte birinden
fazlası dahil 3.000'den fazla müşteri.
Redis Labs, dünya çapında 60000'den fazla
müşteriden oluşur ve NoSQL, bellek içi ve
operasyonel veritabanları hakkındaki en iyi analist
raporlarında tutarlı bir şekilde lider olarak sıralanır.
MongoDB vs. Redis
15. MongoDB Neden Kullanılmalı?
• Document-Oriented
• Ad-Hoc Queries
• Indexing
• Replication
• Load Balancing
• Flexibility
– MongoDB'deki veriler esnek bir şemaya sahiptir. Koleksiyonlar belge yapısını zorlamaz.
– Bu esneklik, uygulamanıza ve performans gereksinimlerine uygun veri modelleme seçenekleri
sunar.
• Scalability
– Verilerin boyutu arttıkça, tek bir makine verileri depolamak veya kabul edilebilir bir okuma ve
yazma verimi sağlamak için yeterli olmayabilir.
– Sharding, sorunu yatay ölçeklemeyle çözer. Sharding, veri büyümesinin taleplerini karşılamak
için MongoDB'nin izlediği yaklaşımdır.
• Performance
– MongoDB, MySQL'den 2 ila 10 kat ve CouchDB'den 50 kat daha hızlıdır.
16. MongoDB Ne Zaman Kullanılmalı?
• Veri Ekleme Tutarlılığı
• Data Corruption Recovery (Veri Kurtarma)
• Load Balancing
• JOIN’lerden Kaçınmak İçin
• Şema Değişiklikleri İçin En Uygun Yol
• İlişkisel Veri Değil
19. Command Line Options
Option Description
--help Komut satırı seçeneklerini göster
--nodb Veritabanına bağlanmadan akıllı mongo shell
--shell JavaScript dosyasını çalıştırdıktan sonra
mongo kabuğunda devam etmek için bir
JavaScript dosyasıyla (yani <file.js>) birlikte
kullanılır.
20. Command Helpers
Help Methods & Commands Description
help Show help
db.help() Show help for database methods.
db.<collection>.help() Show help on collection methods.
show dbs Print a list of all databases on the server.
use <db> Switch current database to <db>
show collections Print a list of all collections for current database.
show users Print a list of users for current database.
show roles Print a list of all roles, ot user-defined and built-in, for
the current database.
show profile Print the five most recent operations that took 1
millisecond or more.
show databases Print a list of all available databases.
load() Execute a JavaScript file.
21. Temel Shell JavaScript Operasyonları
JavaScript DB Operations Description
db.auth() If running in secure mode, authenticate the user.
coll = db.<collection> Set a specific collection in the current database to a variable coll.
db.collection.find() Find all documents in the collection and returns a cursor.
db.collection.insertOne() Insert a new document into the collection.
db.collection.insertMany() Insert multiple new documents into the collection.
db.collection.updateOne() Update a single existing document in the collection.
db.collection.updateMany() Update multiple existing documents in the collection.
db.collection.save() Insert either a new document or update an existing document in the
collection.
db.collection.deleteOne() Delete a single document from the collection.
db.collection.deleteMany() Delete documents from the collection.
db.collection.drop() Drops or removes completely the collection.
db.collection.createIndex() Create a new index on the collection if the index does not exist.
db.getSiblingDB() Return a reference to another database using this same connection
without explicitly switching the current database. This allows for cross
database queries.
22. Keyboard Shortcuts
Keystroke Function
Up + Arrow / CTRL - P Previous-Histroy
Down-Arrow / CTRL - N Next-History
Home / CTRL - A Beginning-of-Line
End / CTRL - E End-of-Line
Tab Automcomplete
Left + Arrow / CTRL + B Backward-Character
Right + Arrow / CTRL + F Forward-Character
CTRL + Left + Arrow / Meta + Left + Arrow / Meta + B Backward-Word
CTRL + Right + Arrow / Meta + Right + Arrow / Meta + F Forward-Word
CTRL + C Exit-Shell
CTRL + D Delete-Char (or Exit Shell)
CTRL + G Abort
23. Keyboard Shortcuts
Keystroke Function
CTRL + J / CTRL + M Accept-Line
CTRL + K Kill-Line
CTRL + L Clear-Screen
CTRL + R Reverse-Search-History
CTRL + S Forward-Search-History
CTRL + T Transpose-Chars
CTRL + H (i.e Backspace) Backward-Delete-Char
CTRL + I (i.e Tab) Complete
Meta + C Capitalize-Word
Meta + L Downcase-Word
Meta + U Upcase-Word
Meta + < Beginning-of-History
Meta + > End-of-History
28. DataType Description
Double Used to stored floating point values.
String Commonly used datatype ad it is UTF-8 valid.
Object Used for storing embedded objects
Array Used for storing embedded objects
Binary Data Used to store binary data
Undefined Used to store undefined value
Object Id Used to store document's ID
Boolean Used to store Boolean value
Date Used to store current date time in UNIX format.
Null Used to store null value
Regular Expression Used to store regex
JavaScript Used to store JavaScript data without scope
Symbol Basically used to store string, but reserved for languages that use specific symbol
JavaScript with Scope Used to store JavaScript data with scope
Integer Used to store numerical value
Timestamp Used to track when a docuyment is modified
Min / Max Key Used to compare value against lowest and highest BSON elements.
29. Database
• Veritabanı, koleksiyonlar için fiziksel bir konteynırdır.
• MongoDB'de CREATE DATABASE komutu yoktur.
• MongoDB'de veritabanını manuel olarak oluşturmanız gerekmez.
• Koleksiyona döküman kaydettiğinizde otomatik olarak veritabanı oluşturulacaktır.
• use Komutu:
– MongoDB'de veritabanı oluşturmak için use komutu kullanılır.
– Komut, mevcut değilse yeni bir veritabanı oluşturur, aksi takdirde mevcut veritabanını döndürür.
– Syntax
• use DATABASE_NAME
• dropDatabase() Metodu
– dropDatabase() command is used to drop an existing database in MongoDB.
– Syntax
• db.dropDatabase()
30. Database
> use mydb
> db
> show dbs
> db.movie.insert({"name":"mongodb"})
> show dbs
> db.dropDatabase()
> show dbs
31. Collection
• Koleksiyon, MongoDB dökümanlarından oluşan bir gruptur.
• RDBMS’deki tablonun eşdeğeridir.
• Koleksiyonlar açıkça veya otomatik olarak oluşturulabilir.
• MongoDB, birkaç döküman eklediğinizde otomatik olarak koleksiyon oluşturur.
• createCollection() method is used to create collections explicitly in MongoDB:
– db.createCollection(name, options)
Field Type Description
Capped Boolean True olarak ayarlanmışsa, sınırlı bir koleksiyonu etkinleştirir.
AutoIndexID Boolean True olarak ayarlanmışsa, ID alanında otomatik olarak indeks oluşturur.
Varsayılan değeri false.
Size Number Sınırlı bir koleksiyon için bayt cinsinden maksimum boyutu belirtir.
Sınırlanmış doğruysa, bu alanı da belirtmeniz gerekir.
Max Number Sınırlı koleksiyonda izin verilen maksimum belge sayısını belirtir.
32. Documents
• Doküman, bir dizi key/value’dur.
• Dökümanlar dinamik şemaya sahiptir.
• MongoDB verileri BSON dökümanlar olarak saklar.
Döküman Yapısı
Örnek
33. Collections
(Alan Adlarına İlişkin Kısıtlamalar)
• _id alan adı, Primary Key olarak kullanılmak üzere ayrılmıştır; değeri koleksiyonda benzersiz olmalıdır,
değişmezdir ve bir dizi dışında herhangi bir türde olabilir.
• Alan adları boş karakter içeremez.
• Top-Level alan adları dolar işareti($) karakteriyle başlayamaz.
• Aksi takdirde sunucu, noktalar(yani) ve dolar işaretleri(yani $) içeren alan adlarının depolanmasına izin
verir.
34. Collections
(Alan Adlarına İlişkin Kısıtlamalar)
• Document Size Limit
– Maksimum BSON dökümanı boyutu 16 megabayttır.
• Document Field Order
– MongoDB, aşağıdaki durumlar dışında, yazma işlemlerinin ardından belge alanlarının sırasını korur:
• _id alanı her zaman belgedeki ilk alandır.
• Alan adlarının yeniden adlandırılmasını içeren güncellemeler, dökümandaki alanların yeniden
sıralanmasına neden olabilir.
• The _id Field
– _id alanı aşağıdaki davranışa ve kısıtlamalara sahiptir:
• Varsayılan olarak MongoDB, bir koleksiyonun oluşturulması sırasında _id alanında benzersiz bir
dizin oluşturur.
• _id alanı her zaman belgelerdeki ilk alandır.
• _id alanı, bir dizi dışında herhangi bir BSON veri türünün değerlerini içerebilir.
36. Collections
(Insert Documents)
• Tekil Bir Döküman Eklemek
– insertOne() yöntemi, bir koleksiyona tek bir belge eklemek için kullanılır.
– Syntax
• db.COLLECTION_NAME.insertOne(document)
– Eklenen belgeleri almak için koleksiyonu sorgulayın:
• db.COLLECTION_NAME({})
• Insert için Ek Yöntemler:
– db.collection.update()
– db.collection.updateOne()
– db.collection.updateMany()
– db.collection.findAndModify()
– db.collection.findOneAndUpdate()
– db.collection.findOneAndReplace()
– db.collection.save()
– db.collection.bulkWrite()
37. Collections
(Query Documents)
• The find() Method
– MongoDB koleksiyonundan veri sorgulamak için MongoDB'nin find() yöntemi kullanılır.
– Syntax
• db.COLLECTION_NAME.find()
• The pretty() Method
– Sonuçları biçimlendirilmiş bir şekilde görüntülemek için pretty() yöntemi kullanılır.
– Syntax
• db.COLLECTION_NAME.find().pretty()
Operation Syntax
Equality {<key> : <value>}
Less Than {<key> : {$lt : <value>}}
Less Than Equals {<key> : {$lte : <value>}}
Greater Than {<key> : {$gt : <value>}}
Greater Than Equals {<key> : {$gte : <value>}}
Not Equals {<key> : {$ne : <value>}}
38. Collections
(AND & OR)
• AND
– Find() yönteminde, birden çok anahtarı "" ile ayırarak geçirirseniz, MongoDB bunu AND koşulu
olarak kabul eder.
Syntax
• OR
– OR koşuluna göre belgeleri sorgulamak için $ veya anahtar sözcüğünü kullanmanız gerekir.
Syntax
39. Bulk Operasyonları
• MongoDB, istemcilere yazma işlemlerini toplu olarak gerçekleştirme yeteneği sağlar.
• Toplu yazma işlemleri tek bir koleksiyonu etkiler.
• db.collection.bulkWrite() yöntemi, toplu ekleme, güncelleme ve kaldırma işlemleri gerçekleştirme
yeteneği sağlar.
• MongoDB ayrıca db.collection.insertMany() aracılığıyla toplu eklemeyi destekler
• Varsayılan olarak, bulkWrite() ordered işlemleri gerçekleştirir.
• Unordered yazma işlemlerini belirtmek için seçenekler dökümanında ordered:false değerini ayarlayın.
40. Bulk Operasyonları
(Ordered ve Unordered İşlemler)
• Toplu yazma işlemleri sıralı veya sırasız olabilir.
• Sıralı bir işlem listesi ile MongoDB işlemleri seri olarak yürütürken, Sırasız işlem listesi ile MongoDB,
işlemleri paralel olarak yürütebilir.
• Sharded(parçalanmış) bir koleksiyon üzerinde sıralı bir işlem listesi yürütmek, genellikle sırasız bir
liste yürütmekten daha yavaş olacaktır.
• Varsayılan olarak, bulkWrite() ordered işlemleri gerçekleştirir. Unordered yazma işlemlerini
belirtmek için seçenekler belgesinde sıralı: yanlış değerini ayarlayın.
• bulkWrite() Metodları:
– insertOne
– updateOne
– updateMany
– replaceOne
– deleteOne
– deleteMany
Her yazma işlemi, bir dizideki belge olarak bulkWrite() öğesine iletilir.
41. Retryable Writes
• Yeniden denenebilir yazma işlemleri, MongoDB sürücülerinin, ağ hatalarıyla karşılaşırlarsa veya replica
set’lerinde ya da sharded cluster sağlıklı bir primary key bulamazlarsa, belirli yazma işlemlerini tek
seferde otomatik olarak yeniden denemelerine olanak tanır.
• Prerequisites:
– Desteklenen Dağıtım Topolojileri
– Desteklenen Depolama Motoru
– MongoDB Drivers
– MongoDB VersionMongoDB Version
• Retryable Writes & Multi-Document Transactions:
– MongoDB sürücüleri, transaction commit ve abort operation dışında varsayılan olarak yeniden
denenebilir yazmaları etkinleştirmez.
– MongoDB Drivers:
• MongoDB driver’ında retryable writes’ı etkinleştirmek için connection string retryWrites
seçeneğini ekleyin:
– mongodb://localhost/?retryWrites=true
• Mongo Shell
– Mongo kabuğunda yeniden denenebilir yazmaları etkinleştirmek için --retryWrites
komut satırı seçeneğini kullanın:
» mongo --retryWrites
42. Retryable Writes
(Retryable Write Operasyonları)
Methods Descriptions
db.collection.findAndModify() findAndModify işlemleri.
Tüm findAndModify işlemleri tek döküman işlemleridir.
db.collection.findOneAndDelete()
db.collection.findOneAdReplace()
db.collection.findOneAndUpdate()
insertOne() Yalnızca single-document yazma işlemlerinden oluşan toplu
yazma işlemleri.
updateOne()
replaceOne()
deleteOne()
Bulk.find.removeOne() Yalnızca single-document yazma işlemlerinden oluşan toplu
yazma işlemleri.
Bulk.find.replaceOne()
Bulk.find.replaceOne()
43. Text Search
• MongoDB, dize içeriğinde metin araması gerçekleştiren sorgu işlemlerini destekler.
• MongoDB, dize içeriği üzerinde metin arama sorgularını desteklemek için metin index’leri sağlar.
• Metin index’leri, değeri bir string veya dizi olan herhangi bir alanı içerebilir.
• Metin arama sorguları gerçekleştirmek için koleksiyonunuzda bir text index olması gerekir.
• Bir koleksiyonun yalnızca bir text search index’i olabilir, ancak bu index birden çok alanı kapsayabilir.
• Text Search in Query Framework:
– $text sorgu operatörü, bir metin dizini içeren bir koleksiyonda metin aramaları gerçekleştirmek
için kullanılır.
• Text Search in the Aggregation Pipeline:
– In the aggregation pipeline, text search is available via the use of the $text query operator in the
$match stage.
• Kısıtlamalar
– $text içeren $match aşaması, pipeline hattındaki ilk aşama olmalıdır.
44. Geospatial Queries
(GeoJSON Objects)
• Dünya benzeri bir küre üzerinde geometriyi hesaplamak için, konum verilerinizi GeoJSON nesneleri
olarak saklayın.
• GeoJSON verilerini belirtmek için aşağıdakileri içeren bir embedded-document kullanın:
– GeoJSON nesne türünü belirten type adlı bir alan ve…
– nesnenin koordinatlarını belirten coordinates adlı bir alan.
• Enlem ve boylam koordinatlarını belirtiyorsanız, önce boylamı, ardından enlemi listeleyin:
– Geçerli boylam değerleri, her ikisi de dahil olmak üzere -180 ile 180 arasındadır.
– Geçerli enlem değerleri -90 ile 90 arasındadır (her ikisi dahil).
• Syntax
– <field> : { type: <GeoJSON type>, coordinates: <coordinates>}
45. Geospatial Queries
(Legacy Coordinate Pairs)
• Bir Euclidean düzlemindeki mesafeleri hesaplamak için, konum verilerini legacy coordinate pairs olarak
saklayın ve bir 2dindex kullanın.
• MongoDB, 2dsphere indeksi aracılığıyla legacy coordinate pairs küresel yüzey hesaplamalarını destekler.
• Verileri legacy coordinate pairs olarak belirtmek için bir array veya embedded document kullanabilirsiniz.
• Syntax:
46. Geospatial Queries
(Geospatial Indexes)
• 2dsphere
– 2dsphere indeksleri, dünya benzeri bir küre üzerinde geometrileri hesaplayan sorguları destekler.
– 2dsphere index’i oluşturmak için db.collection.createIndex() yöntemi kullanılır.
db.collection.createIndex({<location field>:"2dsphere"})
• 2d
– 2d index’ler, iki boyutlu bir düzlemde geometrileri hesaplayan sorguları destekler.
– 2 boyutlu bir index oluşturmak için db.collection.createIndex() metodu kullanılır.
db.collection.createIndex({<location field>:"2d"})
47. Geospatial Queries
(Geospatial Indexes and Sharded Collections)
• Bir koleksiyonu parçalarken(sharding) geospatial index’ini shard key olarak kullanamazsınız.
• Ancak, sharded bir koleksiyondaki geospatial index, shard key olarak farklı bir alan kullanılarak
oluşturulabilir.
• Geospatial index‘ler bir sorguyu kapsayamaz.
• Aşağıdaki geospatial işlemler, parçalanmış koleksiyonlarda desteklenir:
– $geoNear aggregation.
– $near ve $nearSphere sorgu operatörleri (MongoDB 4.0'dan itibaren)
– geoNear komutu (deprecated in MongoDB 4.0)
• Ayrıca, $geoWithin ve $geoIntersect kullanarak parçalanmış bir küme için geospatial verileri
sorgulayabilirsiniz.
48. Geospatial Queries
(Geospatial Query Operators)
Name Description
$geoIntersects GeoJSON geometrisi ile kesişen geometrileri seçer. 2dsphere endeksi $geoIntersects'i
destekler.
$geoWithin Sınırlayıcı bir GeoJSON geometrisi içindeki geometrileri seçer. 2dsphere ve 2d indeksleri
$geoWithin'i destekler.
$near Bir noktanın yakınındaki geospatial nesneleri döndürür. Geospatial bir index gerektirir.
2dsphere ve 2d index’leri $near'ı destekler.
$nearSphere Küre üzerindeki bir noktanın yakınındaki geospatial nesneleri döndürür. Geospatial bir
index gerektirir. 2dsphere ve 2d indeksleri $nearSphere'i destekler.
49. Geospatial Queries
(Geospatial Aggregation Stage)
Stage Description
$geoNear Geospatial noktanın yakınlığına göre sıralı döküman akışını döndürür. Geospatial
veriler için $match, $sort ve $limit fonksiyonlarını içerir. Çıktı dökümanlar ek bir
mesafe alanı içerir ve bir konum tanımlayıcı alanı içerebilir. $geoNear bir
geospatial index gerektirir.
50. Geospatial Queries
(Geospatial Command)
Command Description
geoNear (Deprecated in MongoDB 4.0) Belirli bir noktaya en yakın dökümanları döndüren geospatial
bir sorgu gerçekleştirir. Kullanımdan kaldırılan geoNear
komutu, geospatial bir dizin gerektirir.