Springboot java kod örnekleri ile Spring Data Mongodb interview soruları ve cevapları





Spring data spring mongo konfigrasyonu

Spring Boot ile birlikte gelen otomatik yapılandırma sayesinde Spring Data MongoDB'yi kullanmak oldukça basittir. Ancak bazı özel yapılandırmalar gerekiyorsa aşağıdaki adımlar izlenebilir.

İlk olarak, Spring Data MongoDB'nin projenize dahil edilmesi gerekir. Bu, projenizin pom.xml dosyasına aşağıdaki gibi bir dependency ekleyerek yapılabilir:

xml
Copy code
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
Ardından, MongoDB veritabanına bağlantı bilgileri application.properties veya application.yml dosyasında belirtilmelidir. Örnek bir application.properties dosyası aşağıdaki gibidir:

properties
Copy code
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydatabase
Eğer MongoDB'ye kullanıcı adı ve şifre ile bağlanılması gerekiyorsa, aşağıdaki gibi bir yapılandırma kullanılabilir:

properties
Copy code
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=myuser
spring.data.mongodb.password=mypassword
spring.data.mongodb.database=mydatabase
Eğer özel bir MongoTemplate yapılandırması gerekiyorsa, bir @Configuration sınıfı içerisinde bir MongoTemplate bean'i oluşturulabilir:

java
Copy code
@Configuration
public class MongoConfig {

    @Autowired
    private MongoDbFactory mongoDbFactory;

    @Bean
    public MongoTemplate mongoTemplate() throws Exception {
        MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);
        // özel yapılandırmalar burada yapılabilir
        return mongoTemplate;
    }

}
Son olarak, belgelerinizi temsil eden sınıflar oluşturulmalı ve bu sınıflar için repository sınıfları oluşturulmalıdır:

java
Copy code
@Document(collection = "mycollection")
public class MyDocument {
    // alanlar, getter'lar ve setter'lar burada tanımlanabilir
}

public interface MyDocumentRepository extends MongoRepository<MyDocument, String> {
    // sorgu methodları burada tanımlanabilir
}
Bu şekilde Spring Data MongoDB'nin temel bir yapılandırması tamamlanmış olur.

Elbette, önce bir Spring Boot ve Spring Data MongoDB uygulaması için örnek bir Java kod parçası paylaşacağım. Daha sonra birkaç yaygın mülakat sorusu ve cevabı paylaşacağım.


Spring Boot ve Spring Data MongoDB Kod Örneği:

Bu örnekte, bir User sınıfını ve bu sınıf için bir Repository oluşturacağız. Sonra bu repository üzerinden CRUD operasyonları gerçekleştireceğiz.



java

Copy code

import org.springframework.data.annotation.Id;

import org.springframework.data.mongodb.core.mapping.Document;


@Document(collection = "users")

public class User {


    @Id

    private String id;

    private String name;

    private String email;


    // Getters and setters...

}

java

Copy code

import org.springframework.data.mongodb.repository.MongoRepository;


public interface UserRepository extends MongoRepository<User, String> {

}

java

Copy code

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;


@RestController

@RequestMapping("/users")

public class UserController {


    @Autowired

    private UserRepository userRepository;


    @PostMapping

    public User addUser(@RequestBody User user) {

        return userRepository.save(user);

    }


    @GetMapping

    public List<User> getUsers() {

        return userRepository.findAll();

    }


    // You can continue with other CRUD operations...

}


Spring Data MongoDB ile ilgili Mülakat Soruları ve Cevapları:

Spring Data MongoDB nedir?

Cevap: Spring Data MongoDB, MongoDB veritabanına erişim ve manipülasyon için kullanılan bir Spring Data modülüdür. Bu modül, MongoDB depoları için CRUD işlemleri, sorgulama desteği ve çeşitli MongoDB özelliklerini kullanmayı kolaylaştırır.


Spring Data MongoDB'nin sağladığı avantajlar nelerdir?

Cevap: Spring Data MongoDB'nin sağladığı avantajlardan bazıları şunlardır:


Veri erişimi ve manipülasyonunu kolaylaştırır.

Repository desteği ile birlikte gelir, bu da genel CRUD işlemlerini basitleştirir.

MongoDB sorgu diline yakın, ancak Java'nın tip güvenli yapısını koruyan bir sorgu dilini destekler.

Spring Data'da @Document annotation'ının kullanımı nedir?

Cevap: @Document annotation'ı, bir sınıfın MongoDB koleksiyonuna eşlendiğini belirtir. Ayrıca, özel bir koleksiyon adı belirlemek için @Document(collection = "customName") şeklinde kullanılabilir.

Spring Data MongoDB'de MongoRepository ve MongoTemplate arasındaki fark nedir?

Cevap: MongoRepository ve MongoTemplate, Spring Data MongoDB'nin iki temel bileşenidir.


MongoRepository genellikle CRUD işlemleri için kullanılır ve Spring Data'nın Repository desteğinden yararlanır. Bu sayede standart CRUD işlemleri için metotları içerisinde barındırır.

MongoTemplate ise daha düşük seviye bir bileşendir ve genellikle karmaşık sorgular ve işlemler için kullanılır. MongoTemplate, sorgu oluşturma, dönüşüm ve sonuç ayarlama gibi işlemleri kendi yönetir.

Spring Data MongoDB'deki @Id annotation'ın ne işe yaradığını açıklar mısınız?

Cevap: @Id annotation'ı, bir alanın MongoDB belgesinin benzersiz kimliğini (genellikle _id alanını) temsil ettiğini belirtir. MongoDB, her belge için benzersiz bir _id alanı oluşturur. Bu değer, belgeleri hızlı bir şekilde bulmak ve güncellemek için kullanılır. Java sınıfında, bu alan genellikle @Id annotation'ı ile işaretlenir.


Spring Data MongoDB'de indeksleme ne işe yarar ve nasıl yapılır?

Cevap: MongoDB'deki indeksleme, sorguların daha hızlı çalışmasını sağlar. Indeks oluşturmak için, bir alanın üzerine @Indexed annotation'ını ekleyebiliriz. Bu, MongoDB'nin belirtilen alan için bir indeks oluşturmasını sağlar. Ancak, gereksiz yere çok fazla indeks oluşturmak performansı olumsuz etkileyebilir, çünkü her indeks ek depolama alanı gerektirir ve veri ekleme/güncelleme işlemlerini yavaşlatır. Bu yüzden indeks oluşturulurken dikkatli olunmalıdır.


Spring Data MongoDB'de özel sorgular nasıl oluşturulur?

Cevap: Spring Data MongoDB, repository metot adlarından otomatik olarak sorgular oluşturabilir. Örneğin, findByName(String name) metodunu eklerseniz, bu metot belirtilen isme sahip belgeleri arar. Daha karmaşık sorgular için @Query annotation'ı kullanılabilir. Bu annotation ile doğrudan MongoDB JSON sorgu sözdizimini kullanabilirsiniz.


MongoDB'de embeded (gömülü) belgeler nedir ve nasıl kullanılır?

Cevap: MongoDB, belgelerin diğer belgeleri içerebildiği bir belge tabanlı veritabanıdır. Bu iç belgelere "gömülü belgeler" denir. Gömülü belgeler, bir belgenin özelliklerinin bir araya getirildiği bir nesne veya nesne listesi olabilir. Gömülü belgeler, @Field annotation'ı ile belirtilen Java sınıflarında kullanılır.


@Transient annotation'ı ne için kullanılır?

Cevap: @Transient annotation'ı, bir alanın MongoDB belgesine eşlenmemesi gerektiğini belirtir. Bu, belirli bir alanın veritabanında kalıcı olmasını istemediğinizde kullanışlıdır.


MongoDB'de ACID işlemleri nasıl gerçekleştirilir?

Cevap: MongoDB 4.0 ve üstü sürümler, çoklu belge işlemlerini destekler ve bu işlemler ACID uyumludur. Bu, bir işlemdeki tüm değişikliklerin ya tamamen uygulanacağını ya da hiç uygulanmayacağını garanti eder. Spring Data MongoDB, @Transactional annotation'ı ile işlemleri destekler. Ancak, bu işlevsellik, performans maliyeti olabilir ve genellikle yalnızca gerekli olduğunda kullanılmalıdır.

Spring Data MongoDB'deki @DBRef annotation'ı ne işe yarar?

Cevap: @DBRef annotation'ı, MongoDB belgeleri arasında ilişki oluşturmayı sağlar. Bu, ilişkisel veritabanlarındaki yabancı anahtar ilişkisine benzer bir konsepttir. Ancak, MongoDB'nin bir NoSQL veritabanı olduğunu ve bu nedenle tam anlamıyla ilişkisel olmadığını unutmamak önemlidir. @DBRef annotation'ı, belirli bir belgeye başka bir belgenin referansını saklama olanağı sağlar.


Spring Data MongoDB'deki @TextIndexed annotation'ı ne işe yarar?

Cevap: @TextIndexed annotation'ı, belirli bir alanın metin indeksine dahil edilmesini sağlar. MongoDB'deki metin indeksi, belge içindeki kelime ve ifadeleri arama yeteneği sağlar.


MongoDB'de GridFS nedir ve ne zaman kullanılır?

Cevap: GridFS, büyük boyutlu verileri (örneğin, video veya ses dosyaları) saklamak için MongoDB'nin bir özelliğidir. GridFS, büyük boyutlu bir dosyayı birden çok belgeye (parçaya) böler ve bu belgeleri ayrı ayrı saklar. Spring Data MongoDB, GridFsTemplate sınıfını kullanarak GridFS ile çalışmayı sağlar.


Spring Data MongoDB'de Cascade Delete işlemi nasıl gerçekleştirilir?

Cevap: Spring Data MongoDB, doğrudan "Cascade Delete" işlemini desteklememektedir. Ancak, bu işlemi gerçekleştirmek için bir uygulama düzeyinde işlem gerçekleştirmek mümkündür. Bir ana belge silindiğinde, tüm ilişkili belgelerin de silinmesi için bir olay dinleyici (event listener) kullanabiliriz.


Spring Data MongoDB'de Reactive Programming modelini kullanabilir miyim?




Cevap: Evet, Spring Data MongoDB, Reactive Programming modelini destekler. Reactive Programming, non-blocking, event-driven uygulamalar oluşturmayı sağlar. Bu, özellikle yüksek giriş çıkış (I/O) işlemlerinin olduğu durumlarda uygulamanın performansını ve yanıt verme süresini iyileştirebilir. Spring Data MongoDB'de, ReactiveMongoRepository kullanarak Reactive Programming modelini kullanabiliriz.

Spring Data MongoDB'deki @CompoundIndex annotation'ı ne işe yarar?

Cevap: @CompoundIndex annotation'ı, birden çok alanı içeren bir bileşik indeks oluşturmayı sağlar. Bileşik indeksler, birden çok alanın değerlerine göre sıralama ve arama işlemlerini hızlandırır.


MongoDB'deki Aggregation işlemleri ne işe yarar ve Spring Data MongoDB'de nasıl kullanılır?

Cevap: Aggregation işlemleri, belgeler üzerinde çeşitli işlemler yapmayı ve bu belgelerden elde edilen verileri toplamayı sağlar. Bu işlemler, gruplama (grouping), toplama (summing), ortalamaları hesaplama (averaging) gibi işlemleri içerebilir. Spring Data MongoDB'de, MongoTemplate veya Aggregation sınıfını kullanarak aggregation işlemleri gerçekleştirebiliriz.


MongoClient nedir ve ne işe yarar?

Cevap: MongoClient sınıfı, MongoDB veritabanına bağlantıyı yönetir. Bu sınıf, veritabanı işlemlerini gerçekleştirmek için kullanılır. Spring Data MongoDB'de, MongoClient'ı kullanarak doğrudan MongoDB işlemleri gerçekleştirebiliriz, ancak genellikle bu işlemler MongoTemplate veya MongoRepository aracılığıyla yapılır.


@Field annotation'ı ne için kullanılır?

Cevap: @Field annotation'ı, bir alanın MongoDB belgesindeki adını belirtir. Bu annotation, belgenin adının Java alan adından farklı olmasını sağlar. Örneğin, @Field("full_name") ile adlandırılan bir alan, Java sınıfında fullName olarak adlandırılabilir.


MongoDB'deki Sharding nedir ve ne zaman kullanılır?

Cevap: Sharding, verinin birden çok makine arasında bölünmesi anlamına gelir. Bu, veri tabanının ölçeklenebilirliğini ve veri tabanı işlemlerinin hızını artırmak için kullanılır. Büyük miktarda veri ile çalışan yüksek trafikli uygulamalar için genellikle gereklidir. Bununla birlikte, sharding karmaşıktır ve genellikle yüksek miktarda veriye veya çok yüksek bir işlem hızına ihtiyaç duyan uygulamalar için uygundur.

MongoDB'deki Replication nedir ve ne zaman kullanılır?

Cevap: MongoDB'de replikasyon, veri bütünlüğünü ve mevcudiyetini sağlamak için kullanılır. Replikasyon, verinin birden çok sunucuda kopyalanması anlamına gelir. Bir sunucu çöktüğünde, diğer kopyalar hizmeti sürdürebilir. Ayrıca, replikasyon, okuma işlemlerini farklı sunucular arasında dağıtarak yüksek veritabanı okuma iş yükünü yönetmeye yardımcı olabilir.


Spring Data MongoDB'deki @CreatedBy, @LastModifiedBy, @CreatedDate, @LastModifiedDate annotation'ları ne işe yarar?

Cevap: Bu annotation'lar, belgenin kim tarafından oluşturulduğunu ve son değiştirildiğini, ayrıca ne zaman oluşturulduğunu ve son değiştirildiğini otomatik olarak izlemek için kullanılır.


@CreatedBy ve @LastModifiedBy annotation'ları, belgenin kim tarafından oluşturulduğunu ve son değiştirildiğini belirtir.

@CreatedDate ve @LastModifiedDate annotation'ları, belgenin ne zaman oluşturulduğunu ve son değiştirildiğini belirtir.

Spring Data MongoDB'deki @Version annotation'ı ne işe yarar?

Cevap: @Version annotation'ı, bir belgenin sürümünü otomatik olarak izlemek için kullanılır. Bu, eşzamanlı güncellemeleri yönetmeye yardımcı olabilir. Her güncellemeyle birlikte, sürüm numarası otomatik olarak artar.


Spring Data MongoDB'de Flux ve Mono ne anlama gelir?

Cevap: Flux ve Mono, Reactor isimli bir kütüphaneden gelen iki ana sınıftır ve Spring WebFlux ve Spring Data MongoDB gibi Spring'in reaktif modülleri tarafından kullanılır. Flux, 0 veya daha fazla öğeyi temsil eder, Mono ise 0 veya 1 öğeyi temsil eder.


Spring Data MongoDB'deki @Capped annotation'ı ne işe yarar?

Cevap: @Capped annotation'ı, belirli bir boyutta veya belirli bir sayıda belgeye sahip bir koleksiyon oluşturmak için kullanılır. Bu tür koleksiyonlara kısıtlı (capped) koleksiyonlar denir. Koleksiyon, belirtilen boyuta veya belge sayısına ulaştığında, en eski belgeler otomatik olarak silinir. Bu, belirli bir boyut veya belge sayısını aşmayan bir log gibi belgeleri saklamak için yararlı olabilir.



WriteConcern nedir ve ne zaman kullanılır?

Cevap: MongoDB'nin WriteConcern özelliği, bir yazma işleminin tamamlanma garantisi sağlar. Bir WriteConcern, bir yazma işleminin ne zaman tamamlandığına, kaç replika seti üyesinin işlemi onaylaması gerektiğine ve hata durumunda ne yapılacağına karar verir.


ReadPreference nedir ve ne zaman kullanılır?

Cevap: MongoDB'nin ReadPreference özelliği, bir okuma işleminin hangi replika set üyelerinden gerçekleştirileceğini belirler. Bir ReadPreference, verinin en son, en doğru veya en hızlı versiyonunu okumak için farklı stratejileri belirlemek için kullanılabilir.


Spring Data MongoDB'deki Query ve Update nesneleri ne işe yarar?

Cevap: Query ve Update nesneleri, sorgu ve güncelleme işlemlerini temsil eder. Query nesnesi, bir MongoDB sorgusunun koşullarını tanımlar. Update nesnesi ise bir MongoDB güncelleme işlemini tanımlar.


Spring Data MongoDB'de denormalizasyon ne anlama gelir ve ne zaman kullanılır?

Cevap: Denormalizasyon, MongoDB gibi belge tabanlı veritabanlarında sıkça kullanılan bir veri modelleme teknikidir. Denormalizasyon, bir belgenin başka bir belgeye bağlı olan tüm verileri içermesini sağlar. Bu, verinin bir kez okunmasıyla tüm gerekli verilerin alınabileceği anlamına gelir, bu da okuma performansını artırır. Ancak, bu teknik yazma performansını ve veri tutarlılığını etkileyebilir.


Spring Data MongoDB'de çoklu doküman işlemleri nasıl yapılır?

Cevap: MongoDB 4.0 ve üstü sürümler, çoklu belge işlemlerini destekler. Spring Data MongoDB, Session sınıfını kullanarak çoklu belge işlemlerini gerçekleştirebilir. Ancak, çoklu belge işlemleri daha karmaşıktır ve genellikle daha yüksek bir performans maliyeti vardır.

Spring Data MongoDB'deki @Transient annotation'ı ne işe yarar?

Cevap: @Transient annotation'ı, belirli bir alanın veritabanına kaydedilmesini önler. Bu annotation'a sahip bir alan, belgenin bir parçası olmayacak ve MongoDB'ye kaydedilmeyecektir.


Spring Data MongoDB'de Criteria sınıfı ne işe yarar?

Cevap: Criteria sınıfı, MongoDB sorgularını oluşturmayı sağlar. Criteria API, bir sorgunun koşullarını tanımlamak için kullanılır.


MongoDB'deki Embedded Document nedir ve ne zaman kullanılır?

Cevap: MongoDB'de, bir belge başka bir belgeyi içerebilir. İçerilen belgelere gömülü belgeler (Embedded Documents) denir. Gömülü belgeler, bir belgeye ait olan ve belgeyle birlikte saklanması gereken bilgileri temsil etmek için kullanılır.


Spring Data MongoDB'deki Full Text Search özelliği nasıl kullanılır?

Cevap: MongoDB, metin içerikli alanları aramak için full text search özelliğini destekler. Bu özellik, @TextIndexed annotation'ı ve TextCriteria sınıfı ile Spring Data MongoDB'de kullanılabilir.


Spring Data MongoDB'deki MongoTemplate nedir ve ne zaman kullanılır?

Cevap: MongoTemplate sınıfı, MongoDB ile etkileşim için kullanılır. Bu sınıf, CRUD (Oluştur, Oku, Güncelle, Sil) işlemleri, endeks oluşturma, toplama işlemleri ve daha fazlasını gerçekleştirmek için kullanılır. Genellikle, MongoRepository'nin sağlamadığı daha karmaşık işlemleri gerçekleştirmek için kullanılır.

MongoDB'deki GridFS nedir ve ne zaman kullanılır?

Cevap: GridFS, MongoDB'nin büyük binary dosyaları (BLOBs) saklamak için kullandığı bir sistemdir. MongoDB'deki her belge için 16MB sınırı vardır ve bu sınırı aşan dosyaları saklamak için GridFS kullanılır. GridFS, büyük dosyaları parçalara böler ve her bir parçayı ayrı bir belge olarak saklar.


MongoDB'deki TTL Indexes (Time-To-Live) ne işe yarar?

Cevap: MongoDB'deki TTL Indexes, belirli bir süre sonra otomatik olarak silinen belgeler oluşturmayı sağlar. Bu, belirli bir süre sonra geçersiz olan verileri saklamak için kullanılır, örneğin oturum bilgileri, geçici oturumlar veya belirli bir süre sonra silinmesi gereken log kayıtları.


MongoDB'deki Upsert işlemi ne anlama gelir?

Cevap: Upsert, bir belgenin var olup olmadığını kontrol eder ve belge varsa günceller, yoksa yeni bir belge oluşturur. Bu, bir belgenin var olup olmadığını bilmediğiniz durumlar için yararlıdır.


Spring Data MongoDB'deki Bulk Operations nasıl yapılır?

Cevap: Spring Data MongoDB, BulkOperations sınıfı aracılığıyla toplu işlemleri destekler. Bu sınıf, bir dizi belgeyi aynı anda eklemek, güncellemek veya silmek için kullanılır.


MongoDB'deki Normalization ne anlama gelir ve ne zaman kullanılır?

Cevap: MongoDB'deki normalizasyon, bir belgenin başka bir belgeye referans olmasını sağlar. Bu, SQL veritabanlarındaki dış anahtarların karşılığıdır ve iki belge arasında bir ilişki oluşturur. Ancak, bu teknik genellikle denormalizasyon yerine kullanılır çünkü MongoDB, belgeler arası ilişkileri SQL veritabanları kadar etkili bir şekilde yönetemez.

Spring Data MongoDB'deki @DBRef annotation'ı ne işe yarar?

Cevap: @DBRef annotation'ı, bir belgenin başka bir belgeye referans olmasını sağlar. Bu annotation kullanılarak oluşturulan referanslar, MongoDB'deki normalleştirme için kullanılır. Ancak, bu tür referanslar genellikle performansı düşürebilir, çünkü bir belgeyi okumak için genellikle birden fazla veritabanı sorgusu gerektirir.


MongoDB'deki Geospatial Queries ne işe yarar?

Cevap: MongoDB'nin jeo uzamsal sorguları, coğrafi konum bilgileri üzerinde sorgular yapmayı sağlar. Bu sorgular, belirli bir konuma yakın belgeleri bulmak, bir konumun belirli bir alan içerisinde olup olmadığını kontrol etmek veya belirli bir konumdan belirli bir mesafe içerisindeki belgeleri bulmak için kullanılır.


Spring Data MongoDB'deki Query Derivation ne anlama gelir?

Cevap: Spring Data MongoDB'nin sorgu türetme özelliği, bir sorguyu otomatik olarak bir method adından türetir. Bu özellik, karmaşık sorguları kolayca oluşturmayı ve daha okunabilir kod yazmayı sağlar.


Spring Data MongoDB'deki @TextIndexed annotation'ı ne işe yarar?

Cevap: @TextIndexed annotation'ı, bir alanın metin indeksi olmasını sağlar. Bu, MongoDB'nin full text search özelliğini kullanmayı sağlar.


MongoDB'deki Map-Reduce ne anlama gelir ve ne zaman kullanılır?

Cevap: MongoDB'deki Map-Reduce, belgeler üzerinde karmaşık agregasyon işlemlerini gerçekleştirmeyi sağlar. Bir Map-Reduce işlemi, bir map işlemi ve bir reduce işlemi olmak üzere iki aşamadan oluşur. Map işlemi, belgeleri bir anahtar-değer çiftlerine dönüştürür. Reduce işlemi, aynı anahtara sahip tüm değerleri alır ve tek bir sonuç üretir. Ancak, MongoDB 2.2 ve sonrasında, Map-Reduce işlemleri genellikle daha hızlı ve esnek olan Aggregation Framework ile değiştirildi.

MongoDB'deki Aggregation Framework ne işe yarar ve ne zaman kullanılır?

Cevap: MongoDB'nin Aggregation Framework'ü, veri üzerinde karmaşık sorguları ve veri işleme işlemlerini gerçekleştirmeyi sağlar. Bu framework, bir veri boru hattı kavramını kullanır ve veri, bu boru hattının çeşitli aşamalarından geçer. Her aşama, veriyi değiştirir veya dönüştürür. Aggregation Framework, gruplama, filtreleme, sıralama ve diğer birçok işlemi destekler.


Spring Data MongoDB'deki ReactiveMongoTemplate nedir ve ne zaman kullanılır?

Cevap: ReactiveMongoTemplate sınıfı, MongoDB ile reaktif (asenkron ve non-blocking) bir şekilde etkileşim kurmayı sağlar. Bu sınıf, CRUD işlemleri, endeks oluşturma, toplama işlemleri ve daha fazlasını gerçekleştirmek için kullanılır. Genellikle, yüksek veritabanı iş yüküne sahip durumlar için kullanılır.


MongoDB'deki Sharding ne anlama gelir ve ne zaman kullanılır?

Cevap: MongoDB'deki sharding, veritabanı yükünü dağıtmak için kullanılır. Sharding, veri setini parçalara böler ve bu parçaları farklı sunucular arasında dağıtır. Bu, büyük veri setlerini yönetmeyi ve yüksek veritabanı iş yükünü hafifletmeyi sağlar.


Spring Data MongoDB'deki @Document annotation'ı ne işe yarar?

Cevap: @Document annotation'ı, bir sınıfın bir MongoDB belgesini temsil ettiğini belirtir. Bu annotation, belgenin hangi koleksiyona ait olacağını ve belgenin hangi alanları içereceğini belirtir.


MongoDB'deki Replica Set ne anlama gelir?

Cevap: MongoDB'deki bir replica set, aynı veri setinin kopyalarını içeren bir dizi sunucudur. Bir replica set, verinin kaybolmasını önlemek için kullanılır. Bir sunucu çökerse, diğer sunucular hizmete devam eder. Bu, MongoDB'nin yüksek kullanılabilirlik sağlamasına yardımcı olur.

MongoDB'deki Capped Collections nedir ve ne zaman kullanılır?

Cevap: MongoDB'deki capped collections, belirli bir boyut veya belirli bir belge sayısı limitine sahip olan koleksiyonlardır. Bu koleksiyonlar, belge eklendiğinde eski belgeleri otomatik olarak siler. Genellikle, log dosyalarını saklamak veya verinin belirli bir boyutu aşmasını önlemek için kullanılır.


Spring Data MongoDB'deki Cascade Operations nasıl yapılır?

Cevap: Spring Data MongoDB'de, doğrudan cascading operations desteği yoktur. Ancak, bir belgeye bağlı diğer belgeleri güncellemek veya silmek için application level'da bu işlemleri gerçekleştirebilirsiniz. Bu genellikle, bir belge silindiğinde veya güncellendiğinde ilgili belgelerin de güncellenmesi gerektiği durumlar için yapılır.


Spring Data MongoDB'deki @CompoundIndex annotation'ı ne işe yarar?

Cevap: @CompoundIndex annotation'ı, bir belgenin birden çok alanına dayanan bir indeks oluşturmayı sağlar. Bu, birden çok alanı içeren sorguların performansını artırabilir.


MongoDB'deki Write Acknowledgement ne anlama gelir?

Cevap: MongoDB'deki write acknowledgement, bir yazma işlemi tamamlandığında MongoDB'nin bir onay göndermesini sağlar. Bu, yazma işleminin başarılı olduğunu doğrulamak için kullanılır. Write acknowledgement'ın seviyesi, write concern ile belirlenir.


MongoDB'deki Explain Plan nedir ve ne zaman kullanılır?

Cevap: MongoDB'deki explain plan, bir sorgunun nasıl çalıştığını ve hangi indekslerin kullanıldığını gösterir. Bu, sorgu performansını optimize etmek için kullanılır. Explain plan, MongoDB shell'deki explain methodu veya Spring Data MongoDB'deki Query.explain() methodu ile elde edilebilir.

Hiç yorum yok

Rastgele İçerik

DonanımHaber

© tüm hakları saklıdır
made with by templateszoo