C# में डेटाबेस के साथ कार्य: PostgreSQL और MongoDB

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: C# डेवलपर को PostgreSQL और MongoDB क्यों जानना चाहिए?

C# (.NET) में आधुनिक विकास शायद ही कभी डेटाबेस के साथ काम किए बिना होता है। रिलेशनल (SQL) और डॉक्यूमेंट-ओरिएंटेड (NoSQL) DBMS के बीच चुनाव प्रोजेक्ट की आर्किटेक्चर पर निर्भर करता है। PostgreSQL JSON समर्थन वाला एक शक्तिशाली रिलेशनल डेटाबेस है, और MongoDB तेज़ प्रोटोटाइप और Big Data के लिए एक लचीला डॉक्यूमेंट डेटाबेस है। इस लेख में, हम C# से दोनों प्रणालियों के कनेक्शन और बुनियादी संचालन पर चर्चा करेंगे।



1. C# में PostgreSQL के साथ कार्य

.NET में PostgreSQL के साथ इंटरैक्ट करने के लिए प्रदाता Npgsql का उपयोग किया जाता है। यह Entity Framework Core और SQL क्वेरी के सीधे निष्पादन का समर्थन करता है।



1.1. स्थापना और कनेक्शन

NuGet पैकेज स्थापित करें:

dotnet add package Npgsql


कनेक्शन स्ट्रिंग का उदाहरण:

Host=localhost;Port=5432;Database=mydb;Username=user;Password=pass


1.2. Npgsql के माध्यम से CRUD-संचालन

एक तालिका Users बनाएं और बुनियादी संचालन करें:

using Npgsql;

var connString = "Host=localhost;Database=testdb;Username=postgres;Password=123";await using var conn = new NpgsqlConnection(connString);await conn.OpenAsync();

// तालिका बनानाvar createCmd = new NpgsqlCommand(@" CREATE TABLE IF NOT EXISTS Users ( Id SERIAL PRIMARY KEY, Name VARCHAR(100), Age INT )", conn);await createCmd.ExecuteNonQueryAsync();

// डेटा सम्मिलित करनाvar insertCmd = new NpgsqlCommand( "INSERT INTO Users (Name, Age) VALUES (@n, @a)", conn);insertCmd.Parameters.AddWithValue("n", "Алексей");insertCmd.Parameters.AddWithValue("a", 30);await insertCmd.ExecuteNonQueryAsync();

// डेटा पढ़नाvar readCmd = new NpgsqlCommand("SELECT * FROM Users", conn);var reader = await readCmd.ExecuteReaderAsync();while (await reader.ReadAsync()){ Console.WriteLine($"{reader["Id"]}: {reader["Name"]}, {reader["Age"]} वर्ष");}


1.3. Entity Framework Core का उपयोग

पैकेज स्थापित करें:

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL


मॉडल और संदर्भ परिभाषित करें:

public class User{    public int Id { get; set; }    public string Name { get; set; }    public int Age { get; set; }}

public class AppDbContext : DbContext{ public DbSet<User> Users { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseNpgsql("Host=localhost;Database=testdb;Username=postgres;Password=123");}


EF Core के माध्यम से CRUD:

using var db = new AppDbContext();

// जोड़नाdb.Users.Add(new User { Name = "Мария", Age = 25 });await db.SaveChangesAsync();

// पढ़नाvar users = await db.Users.ToListAsync();foreach (var u in users) Console.WriteLine($"{u.Name} - {u.Age}");

// अद्यतन करनाvar user = await db.Users.FirstAsync(u => u.Name == "Мария");u.Age = 26;await db.SaveChangesAsync();

// हटानाdb.Users.Remove(user);await db.SaveChangesAsync();


2. C# में MongoDB के साथ कार्य

MongoDB डेटा को BSON (बाइनरी JSON) प्रारूप में संग्रहीत करता है। C# के लिए ड्राइवर MongoDB.Driver का उपयोग किया जाता है।



2.1. स्थापना और कनेक्शन

NuGet पैकेज स्थापित करें:

dotnet add package MongoDB.Driver


स्थानीय सर्वर से कनेक्शन:

var client = new MongoClient("mongodb://localhost:27017");var database = client.GetDatabase("testdb");var collection = database.GetCollection<BsonDocument>("users");


2.2. CRUD-संचालन

BsonDocument के माध्यम से दस्तावेज़ों के साथ कार्य:

// दस्तावेज़ बनानाvar doc = new BsonDocument{    { "name", "Иван" },    { "age", 28 },    { "skills", new BsonArray { "C#", "MongoDB", "Docker" } }};await collection.InsertOneAsync(doc);

// दस्तावेज़ पढ़नाvar filter = Builders<BsonDocument>.Filter.Eq("name", "Иван");var result = await collection.Find(filter).FirstOrDefaultAsync();Console.WriteLine(result);

// दस्तावेज़ अद्यतन करनाvar update = Builders<BsonDocument>.Update.Set("age", 29);await collection.UpdateOneAsync(filter, update);

// दस्तावेज़ हटानाawait collection.DeleteOneAsync(filter);


2.3. मजबूत टाइप किए गए वर्गों के साथ कार्य

एक C# वर्ग परिभाषित करें:

public class User{    public ObjectId Id { get; set; }    public string Name { get; set; }    public int Age { get; set; }    public List<string> Skills { get; set; }}


संग्रह के साथ कार्य:

var collection = database.GetCollection<User>("users");

var user = new User{ Name = "Ольга", Age = 32, Skills = new List<string> { "C#", "ASP.NET", "MongoDB" }};await collection.InsertOneAsync(user);

var filter = Builders<User>.Filter.Eq(u => u.Name, "Ольга");var result = await collection.Find(filter).FirstOrDefaultAsync();Console.WriteLine($"{result.Name}: {result.Age} वर्ष");


3. PostgreSQL बनाम MongoDB: C# प्रोजेक्ट के लिए कब क्या चुनें?

मानदंडPostgreSQLMongoDB
डेटा मॉडलसख्त स्कीमा, तालिकाएँ और संबंधलचीला स्कीमा, दस्तावेज़
जटिल क्वेरीSQL, JOIN, उप-क्वेरीएग्रीगेशन पाइपलाइन
स्केलेबिलिटीलंबवत (वर्टिकल)क्षैतिज (हॉरिज़ॉन्टल)
C# के लिए उपयुक्तERP, वित्तीय प्रणालीलॉग, कैटलॉग, IoT


निष्कर्ष

PostgreSQL और MongoDB दोनों C# (.NET) में पूरी तरह से एकीकृत हैं। Npgsql और MongoDB.Driver ड्राइवर आपको डेटा के साथ कुशलतापूर्वक कार्य करने की अनुमति देते हैं। चुनाव आपके प्रोजेक्ट की आवश्यकताओं पर निर्भर करता है: यदि आपको डेटा अखंडता और जटिल क्वेरी की आवश्यकता है, तो PostgreSQL चुनें; यदि आपको लचीलापन और स्केलेबिलिटी चाहिए, तो MongoDB चुनें।

ब्लॉग

पुस्तक अनुशंसाएँ