2015-04-08 19 views
10

Jaki jest nowy sposób tworzenia indeksów za pomocą nowego sterownika 2.0? Nie ma w tym żadnej dokumentacji.Indeksy budynków w MongoDB ze sterownikiem .NET 2.0

Wygląda na to, że teraz działa z nowym interfejsem IndexKeysDefinitionBuilder<>, ale to wszystko, co do tej pory otrzymałem.

+1

Po aktualizacji do wersji 2.0 mam ten sam problem! Dlaczego odczuwali potrzebę absolutnego nadmiernego komplikowania czegoś, co było proste !? –

+0

Zaczynam to lubić. Widzę, skąd pochodzą decyzje projektowe, a użycie budowniczych w tym przypadku jest zgodne z innymi zastosowaniami (konstruktorami filtrów itp.). Szczególnie podoba mi się, że zrobili wszystko w pełni asynchronicznie. To jest po prostu (obecnie przynajmniej) nie jest dobrze udokumentowane i niełatwo uzyskać szczegółowe informacje lub próbki. – hholtij

+0

Minęło kilka dni, a ja też to lubię, szczególnie rzeczy asynchroniczne. To było tyle zmian z bardzo małą ilością dokumentacji, która mnie denerwowała, musiałem uciekać się do czytania źródła na githubie ... Jestem pewna, że ​​rozwiążą to wkrótce. Dzięki, –

Odpowiedz

19

Musisz zadzwonić i awaitCreateOneAsync z IndexKeysDefinition można uzyskać za pomocą Builders.IndexKeys:

static async Task CreateIndex() 
{ 
    var client = new MongoClient(); 
    var database = client.GetDatabase("db"); 
    var collection = database.GetCollection<Hamster>("collection"); 
    await collection.Indexes.CreateOneAsync(Builders<Hamster>.IndexKeys.Ascending(_ => _.Name)); 
} 

Jeśli nie masz Hamster można również utworzyć indeks w non-silnie wpisany sposób przez określanie reprezentacji jsonów indeksu:

await collection.Indexes.CreateOneAsync("{ Name: 1 }"); 
+0

. Czy wiesz, jak to zrobić dla kolekcji BsonDocument? – BigJoe714

+2

@ BigJoe714 Zaktualizowałem wpis. Czy to jest odpowiedź na Twoje pytanie? – i3arnon

+0

tak, dziękuję! – BigJoe714