를 통해 MongoDB에서 인덱스를 만드는 방법.그물
MongoDBC# 드라이버를 사용하여 새 문서 모음을 프로그래밍 방식으로 만들었습니다.
이 시점에서 인덱스를 프로그래밍 방식으로 만들고 작성합니다.내가 어떻게 그럴 수 있을까?
드라이버의 v2.0부터 새 버전이 시작됩니다.async- 전용 API.이전 API는 새로운 API에 대한 차단 기능이므로 더 이상 사용해서는 안 됩니다.
현재 권장되는 인덱스 생성 방법은 전화를 걸어 대기하는 것입니다.CreateOneAsync와 함께IndexKeysDefinition을 사용하면 얻을 수 있습니다.Builders.IndexKeys:
static async Task CreateIndexAsync()
{
var client = new MongoClient();
var database = client.GetDatabase("HamsterSchool");
var collection = database.GetCollection<Hamster>("Hamsters");
var indexKeysDefinition = Builders<Hamster>.IndexKeys.Ascending(hamster => hamster.Name);
await collection.Indexes.CreateOneAsync(new CreateIndexModel<Hamster>(indexKeysDefinition));
}
사용해야 합니다.CreateIndex~하듯이EnsureIndex의 다음 버전과의 향후 호환성을 위해 더 이상 사용되지 않는 것으로 표시됩니다.MongoDB:
var client = new MongoClient("mongodb://localhost");
var db = client.GetServer().GetDatabase("db");
var collection = db.GetCollection<Hamster>("Hamsters");
collection.CreateIndex(IndexKeys<Hamster>.Ascending(_ => _.Name));
과중한CreateOneAsync현재 수락된 답변에서 "대신 CreateIndexModel과 함께 CreateOneAsync를 사용하십시오."라는 메시지가 표시됩니다.방법은 다음과 같습니다.
static async Task CreateIndex(string connectionString)
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("HamsterSchool");
var collection = database.GetCollection<Hamster>("Hamsters");
var indexOptions = new CreateIndexOptions();
var indexKeys = Builders<Hamster>.IndexKeys.Ascending(hamster => hamster.Name);
var indexModel = new CreateIndexModel<Hamster>(indexKeys, indexOptions);
await collection.Indexes.CreateOneAsync(indexModel);
}
다음과 같은 작업을 수행해야 합니다.
var server = MongoServer.Create("mongodb://localhost");
var db = server.GetDatabase("myapp");
var users = db.GetCollection<User>("users");
users.EnsureIndex(new IndexKeysBuilder().Ascending("EmailAddress"));
설명서의 다음 비트를 참조하십시오.
인덱싱의 Definitions and Builder 설명서 페이지에는 전체 영역이 있습니다.
http://mongodb.github.io/mongo-csharp-driver/2.4/reference/driver/definitions/ #index-key
예:
IndexKeysDefinition<MyModel> keys = "{ Reference: 1 }";
var indexModel = new CreateIndexModel<MyModel>(keys);
await _context.Indexes.CreateOneAsync(indexModel);
c#에서 인덱스를 만드는 가장 쉬운 방법은 드라이버 래퍼 라이브러리 MongoDB를 사용하는 것입니다.엔티티.다음은 텍스트 색인 작성 예제입니다.
DB.Index<Author>()
.Key(a => a.Name, Type.Text)
.Key(a => a.Surname, Type.Text)
.Create();
전체 텍스트 검색을 수행하려면 다음 작업을 수행합니다.
DB.SearchText<Author>("search term");
그것보다 더 단순하게 만드는 것을 본 적이 없습니다.
언급URL : https://stackoverflow.com/questions/17807577/how-to-create-indexes-in-mongodb-via-net
'codememo' 카테고리의 다른 글
| SQL에서 동일한 줄에 정수 변수 및 문자열 인쇄 (0) | 2023.05.08 |
|---|---|
| Angular2 RC6: '은(는) 알려진 요소가 아닙니다.' (0) | 2023.05.08 |
| VSTO: 기본 Excel 스레드에서 호출 (0) | 2023.05.08 |
| 유효성 검사 오류:잘못된 번들입니다....의 번들에 허용되지 않는 파일 'Frameworks'가 포함되어 있습니다. (0) | 2023.05.08 |
| Express 4.0: req.files를 사용하여 파일 업로드가 정의되지 않았습니다. (0) | 2023.05.08 |