codememo

를 통해 MongoDB에서 인덱스를 만드는 방법.그물

tipmemo 2023. 5. 8. 22:16
반응형

를 통해 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

반응형