asp.net core 통합 MongoDB 의 전체 절차
최근 자신의 프레임 워 크 를 통합 하 는 김 에 MongoDBD 의 가장 간단 한 CRUD 를 재 구성 하여 asp.net core 프로젝트 에 통합 시 켰 습 니 다.물론 이 글 에는 mongodb 의 클 러 스 터 배 치 를 설명 하지 않 았 습 니 다.공유 할 기회 가 있 습 니 다.
우선,우 리 는 MongoDB 의 공식 문서 에서 MongoDb 의 2.4 이상 For.Net 의 구동 은.Net Core 2.0 을 지원 하 는 것 을 보 았 다.
몽고 DB 에 대해 서 는 여러분 이 낯 설 지 않 을 것 이 라 고 생각 합 니 다.사용 해 보지 도 않 았 고 들 어 본 적도 있 습 니 다.
1.몬 godb 는 무엇 입 니까?
MongoDB 는 분포 식 파일 을 기반 으로 저 장 된 데이터베이스 로 웹 응용 에 확장 가능 한 고성능 데이터 저장 솔 루 션 을 제공 하 며 관계 형 데이터 베이스 와 비 관계 형 데이터 베이스 에 있 는 제품 으로 비 관계 형 데이터 베이스 에서 기능 이 가장 풍부 하 다.데이터 처리 에 있어 서 는 이기 적 인 장치 이다.
2.관계 형 데이터베이스 와 비 관계 형 데이터 베 이 스 는 무엇 입 니까?
관계 형 데이터베이스:우리 가 사 용 했 던 sqlserver,my sql 등 은 모두 관계 형 데이터 베이스 이 고 관계 형 데이터 베 이 스 는 ACID 원칙 에 따라 엄격 한 일치 성 을 가진다.
비 관계 형 데이터베이스:NoSQL 이 라 고도 부 릅 니 다.초대형 데이터 와 의 저장 으로 이러한 유형의 데이터 저장 은 고정된 패턴 이 필요 없고 불필요 한 조작 없 이 가로로 확장 할 수 있 습 니 다.
3、RDBMS VS NoSQL
RDBMS:
고도 조직 구조 화 데이터
구조 화 조회 언어
데이터 와 관 계 는 모두 단독 표 에 저장 되 어 있다.
엄격 한 일치 성
실무,일,총무
NoSQL:
설명 없 는 쿼 리 언어
키-값 대 저장,열 저장,문서 저장 등
최종 일치 성
비구 조화 와 예측 할 수 없 는 데이터
CAP 정리,높 은 사용 가능,고성능,높 은 확장
나 는 여기까지 말 하면 눈치 빠 른 학생 들 이 CAP 의 정리 와 최종 일치 성 을 알 아차 리 고 분포 식 시스템 을 연상 시 킬 것 이 라 고 믿는다.여기 서 너 에 게 큰 찬 사 를 줄 것 이다.분포 식 시스템 에서 nosql 을 완벽 하 게 결합 하여 우리 의 성능 을 향상 시 킬 수 있 습 니 다.
4.RDBMS 와 Mongodb 의 개념 을 소개 하여 이해 에 도움 이 됩 니 다.
다음 과 같이 번역 합 니 다.
2.asp.net 코어 통합 mongoDB
1.windows 버 전의 mongodb server 를 편리 하 게 다운로드 하 였 습 니 다.
여러분 은 스스로 홈 페이지 에 가서 다운로드 한 후에 시각 화 된 인터페이스 에 착안 하여 저 는 Robo 3T 라 는 도 구 를 사 용 했 습 니 다.간결 하고 아름 다운 시각 화 도구.추천 합 니 다.
설치 가 끝나 면 windows 서비스 에서 mongodb server 를 볼 수 있 습 니 다.
그리고 로 보 3T 를 열 고 몬 godb 를 연결 합 니 다.
2.프로젝트 에 우리 몬 godb 를 설정 합 시다
STEP 1:코어 2.0 라 이브 러 리 를 새로 만 듭 니 다.
'MongoDB.Driver'라 는 nuget 패 키 지 를 도입 했다.
그리고 Startup.cs 의 Services 확장 방법 을 확 장 했 습 니 다.
// public static class ServiceCollectionExtensions
{
public static void AddMongoDB(this IServiceCollection services, IConfiguration configuration)
{
services.Configure<Settings>(options =>
{
options.ConnectionString = configuration.GetSection("MongoConnection:ConnectionString").Value;
options.Database = configuration.GetSection("MongoConnection:Database").Value;
});
}
}
두 번 째 단계:mongodb 에 포 장 된 CRUD 클래스 를 재 구성 합 니 다.여 기 는 자체 적 으로 포장 할 수 있 고 검색 과 추가 만 보 여 줍 니 다.
public class MongoDBBase
{
private readonly IMongoDatabase _database = null;
public MongoDBBase(string connectionString, string databaseName)
{
var client = new MongoClient(connectionString);
if (client != null)
{
_database = client.GetDatabase(databaseName);
}
}
#region SELECT
/// <summary>
/// ,
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="id"></param>
/// <returns></returns>
public List<T> GetList<T>(Expression<Func<T, bool>> conditions = null)
{
var collection = _database.GetCollection<T>(typeof(T).Name);
if (conditions != null)
{
return collection.Find(conditions).ToList();
}
return collection.Find(_ => true).ToList();
}#endregion
#region INSERT/// <summary>
/// , list
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public List<T> InsertMany<T>(List<T> list)
{
var collection = _database.GetCollection<T>(typeof(T).Name);
collection.InsertMany(list);
return list;
}
#endregion
}
세 번 째 단계:asp.net core webapi 프로젝트 를 새로 만 들 고 이 라 이브 러 리 를 참조 하여 프 리 젠 테 이 션 합 니 다.프로젝트 에 있 는 apptsetting.json 에 mongodb 연결 문자열 을 추가 합 니 다.저 는 여기 서 사용자 정의 데이터 이름 testdb 를 사용 합 니 다.mongodb 를 삽입 할 때 자동 으로 데이터베이스 와 집합,문 서 를 만 듭 니 다.이어서 아래 를 보다
"MongoConnection": { //mongodb
"ConnectionString": "mongodb://127.0.0.1:27017",
"Database": "testdb",
"IsSSL": true
},
네 번 째 단계:mongodb 테스트 컨트롤 러 를 새로 만 들 고 단일 항목 과 여러 항목 을 삽입 하고 조회 하 는 인 터 페 이 스 를 보 여 줍 니 다.
[Produces("application/json")]
[Route("api/MongoDB/[action]")]
public class MongoDBController : Controller
{
private readonly MongoDBBase _context = null;
public MongoDBController(IOptions<Settings> settings)
{
_context = new MongoDBBase(settings.Value.ConnectionString, settings.Value.Database);
}
[HttpGet]
public IActionResult AddList()
{
List<MongoDBPostTest> list = new List<MongoDBPostTest>()
{
new MongoDBPostTest()
{
Id = "2",
Body = "Test note 3",
UpdatedOn = DateTime.Now,
UserId = 1,
HeaderImage = new NoteImage
{
ImageSize = 10,
Url = "http://localhost/image1.png",
ThumbnailUrl = "http://localhost/image1_small.png"
}
},
new MongoDBPostTest()
{
Id = "3",
Body = "Test note 4",
UpdatedOn = DateTime.Now,
UserId = 1,
HeaderImage = new NoteImage
{
ImageSize = 14,
Url = "http://localhost/image3.png",
ThumbnailUrl = "http://localhost/image3_small.png"
}
}
};
try
{
_context.InsertMany(list);
}
catch (Exception ex)
{
throw;
}
return Ok(" ");
}
[HttpGet]
public Result<List<MongoDBPostTest>> SelectSingle()
{
//
var list = _context.GetList<MongoDBPostTest>();
//
//var list = _context.GetList<MongoDBPostTest>(a => a.Id == "1");
// ,
//var list = _context.GetSingle<MongoDBPostTest>();
// ,
//var list = _context.GetSingle<MongoDBPostTest>(a => a.Id == "3");
ObjectId internalId = _context.GetInternalId("5bbf41651d3b66668cbb5bfc");
var a = _context.GetSingle<MongoDBPostTest>(note => note.Id == "5bbf41651d3b66668cbb5bfc" || note.InternalId == internalId);
return ResHelper.Suc(1, list, " ");
}
}
테스트 클래스
public class MongoDBPostTest
{
[BsonId]
// standard BSonId generated by MongoDb
public ObjectId InternalId { get; set; }
public string Id { get; set; }
public string Body { get; set; } = string.Empty;
[BsonDateTimeOptions]
public DateTime UpdatedOn { get; set; } = DateTime.Now;
public NoteImage HeaderImage { get; set; }
public int UserId { get; set; } = 0;
}
public class NoteImage
{
public string Url { get; set; } = string.Empty;
public string ThumbnailUrl { get; set; } = string.Empty;
public long ImageSize { get; set; } = 0L;
}
다섯 번 째 단계:프로젝트 를 실행 하고 실행 합 니 다.여러 개의 데 이 터 를 삽입 하 는 것 을 실행 합 시다.실행 에 성공 하 였 습 니 다.
그리고 데이터 베 이 스 를 살 펴 보 니 testdb 데이터 베 이 스 를 만 들 었 고 그 안에 우리 의 데이터 내용 이 포함 되 어 있 습 니 다.
그리고 우 리 는 다음 과 같은 조 사 를 수행 합 니 다.우리 가 방금 삽입 한 데 이 터 를 되 돌려 주 었 습 니 다.
주의:여기 해결 해 야 할 구덩이 가 있 습 니 다.바로 mongodb 가 저장 하 는 시간 은 UTC 입 니 다.우리 의 현지 시간 과 8 시간 차이 가 납 니 다.그래서 이쪽 은 특별히 처리 할 시간 이 필요 합 니 다.
3.총화
이로써 몬 godb 의 간단 한 운용 은 이미 시연 이 끝 났 고 후기 에 여러분 들 은 공식 문서 에 따라 확장 할 수 있 으 며 뒤로 확장 할 수록 점점 재 미 있 을 것 입 니 다.여러분 의 지지 에 감사 드 립 니 다.Thank you。
참고 문서:
mongodb 튜 토리 얼:http://www.runoob.com/mongodb/mongodb-tutorial.html
mongodb 중국어 매 뉴 얼:http://www.mongoing.com/docs/
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Tailwind를 ASP.NET Core 프로젝트에 통합우리는 을 사용합니다. 에서 코드를 찾을 수 있습니다. 면도기 페이지 구조를 추가합니다. "node_modules"가 설치되었습니다. "tailwind.config.js"파일이 생성되었습니다. 모든 .razor 및 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.