eXtensionSharp.Mongo
0.0.5
dotnet add package eXtensionSharp.Mongo --version 0.0.5
NuGet\Install-Package eXtensionSharp.Mongo -Version 0.0.5
<PackageReference Include="eXtensionSharp.Mongo" Version="0.0.5" />
<PackageVersion Include="eXtensionSharp.Mongo" Version="0.0.5" />
<PackageReference Include="eXtensionSharp.Mongo" />
paket add eXtensionSharp.Mongo --version 0.0.5
#r "nuget: eXtensionSharp.Mongo, 0.0.5"
#:package eXtensionSharp.Mongo@0.0.5
#addin nuget:?package=eXtensionSharp.Mongo&version=0.0.5
#tool nuget:?package=eXtensionSharp.Mongo&version=0.0.5
๐ฆ eXtensionSharp.Mongo
MongoDB๋ฅผ .NET ํ๋ก์ ํธ์์ EF Core ์คํ์ผ์ ์ ์ธ์ ๊ตฌ์ฑ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒฝ๋ ๋ํผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค.
JMongo<T>
, IJMongoFactoryBuilder
, IJMongoConfiguration<T>
๋ฑ์ ํตํด ์ปฌ๋ ์
๋ฐ ์ธ๋ฑ์ค๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์ํ๊ณ ์๋ ์ด๊ธฐํํฉ๋๋ค.
โจ ์ฃผ์ ๊ธฐ๋ฅ
JMongo<T>
: ์ปฌ๋ ์ ์ ๊ทผ์ ์ ๋ค๋ฆญ ๊ธฐ๋ฐ์ผ๋ก ์ถ์ํIJMongoFactory
/IJMongoFactoryBuilder
: ํ์ ๊ธฐ๋ฐ ์ปฌ๋ ์ ์์ฑ์ ์ ์ธ์ ์ผ๋ก ๊ตฌ์ฑIJMongoConfiguration<T>
: ์ธ๋ฑ์ค ๋ฐ ์ปฌ๋ ์ ์ ์๋ฅผ ์ฝ๋๋ก ์ค์ (์์ฑ/๋ฆฌํ๋ ์ ์์)AddJMongoDb(...)
+UseJMongoDb()
: DI ๋ฑ๋ก ๋ฐ ์ฑ ์์ ์ ์๋ ์ด๊ธฐํ
๐ง ์ค์น
dotnet add package MongoDB.Driver
๐ .NET 8 ์ด์ ๊ถ์ฅ, MongoDB.Driver ํ์
๐งฑ ์ฌ์ฉ ๋ฐฉ๋ฒ
1. ๋ชจ๋ธ ์ ์
public class SampleDocument
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
[BsonElement("id")]
public string Id { get; set; }
[BsonElement("name")]
public string Name { get; set; }
[BsonElement("age")]
public int Age { get; set; }
[BsonElement("createdAt")]
public DateTimeOffset CreatedAt { get; set; }
}
2. ์ปฌ๋ ์ ๋ฐ ์ธ๋ฑ์ค ๊ตฌ์ฑ
public class SampleDocumentConfiguration : IJMongoConfiguration<SampleDocument>
{
public void Configure(JMongoBuilder<SampleDocument> builder)
{
builder.ToDocument("sample", "demo")
.ToCollection(options =>
{
options.Capped = false;
options.Collation = new Collation("en");
})
.ToIndex(indexes =>
{
indexes.CreateOne(new CreateIndexModel<SampleDocument>(
Builders<SampleDocument>.IndexKeys.Ascending(x => x.CreatedAt),
new CreateIndexOptions { ExpireAfter = TimeSpan.FromDays(2) }
));
});
}
}
3. DI ๊ตฌ์ฑ
builder.Services.AddJMongoDb("mongodb://localhost:27017", options =>
{
options.ApplyConfiguration(new SampleDocumentConfiguration());
});
4. ์ฑ ์์ ์ ์๋ ์ด๊ธฐํ
var app = builder.Build();
app.UseJMongoDb(); // ์ปฌ๋ ์
๋ฐ ์ธ๋ฑ์ค ์์ฑ
app.Run();
๐ก ์ ์ธ์ ์ค์ ์ด ํ์ํ ์ด์
๊ธฐ์กด MongoDB ์ฌ์ฉ ๋ฐฉ์์ IMongoClient.GetDatabase().GetCollection()
ํธ์ถ์ด ๋ฐ๋ณต๋๊ณ , ์ธ๋ฑ์ค๋ ์ธ๋ถ์ ํฉ์ด์ง๊ธฐ ์ฝ์ต๋๋ค.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋ธ๋ณ ์ปฌ๋ ์
์ ์์ ์ธ๋ฑ์ค๋ฅผ ํ ๊ณณ์ ๋ช
์์ ์ผ๋ก ์ ์ธํ์ฌ ์ ์ง๋ณด์์ฑ๊ณผ ํ
์คํธ์ฑ์ ๊ฐํํฉ๋๋ค.
๐ ์ฃผ์ ๊ตฌ์ฑ ์์
๊ตฌ์ฑ์์ | ์ค๋ช |
---|---|
JMongo<T> |
์ปฌ๋ ์ ์ ๊ทผ ์ถ์ํ |
JMongoBuilder<T> |
์ปฌ๋ ์ ์ด๋ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ, ์ธ๋ฑ์ค, ์์ฑ ์ต์ ๋ฑ ๊ตฌ์ฑ |
IJMongoFactoryBuilder |
๊ตฌ์ฑ๋ ๋น๋ ๋ฑ๋ก์ |
IJMongoConfiguration<T> |
ํ์ ๋ณ ์ปฌ๋ ์ ๊ตฌ์ฑ ์ ์ ์ธํฐํ์ด์ค |
JMongoDbOptions |
๊ตฌ์ฑ ์ด๊ธฐํ ๋ฑ๋ก ์ปจํ ์ด๋ |
DependencyInjection |
DI ๋ฑ๋ก ๋ฐ ์คํ ํ์ฅ ๋ฉ์๋ |
๐งช ์์ : ์ปฌ๋ ์ ์ฝ์
var factory = provider.GetRequiredService<IJMongoFactory>();
var collection = factory.Create<SampleDocument>();
var doc = new SampleDocument { Name = "test", Age = 30, CreatedAt = DateTimeOffset.UtcNow };
await collection.InsertOneAsync(doc);
โ ๋ผ์ด์ ์ค
MIT License (์์ ๋กญ๊ฒ ์ฌ์ฉ/์์ ๊ฐ๋ฅ)
๐จโ๐ป ๊ธฐ์ฌ
Pull Request, ๊ธฐ๋ฅ ์ ์ ๋ชจ๋ ํ์ํฉ๋๋ค.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- MongoDB.Bson (>= 3.4.0)
- MongoDB.Driver (>= 3.4.0)
-
net9.0
- MongoDB.Bson (>= 3.4.0)
- MongoDB.Driver (>= 3.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.