MongoDB C#ドライバを使用してプログラムで新しいドキュメントコレクションを作成しました。MongoDBで.NETを使用してインデックスを作成する方法
この時点では、プログラムでインデックスを作成して作成したいと考えています。どうやってやるの?
このような何かを行う必要がありますMongoDB C#ドライバを使用してプログラムで新しいドキュメントコレクションを作成しました。MongoDBで.NETを使用してインデックスを作成する方法
この時点では、プログラムでインデックスを作成して作成したいと考えています。どうやってやるの?
このような何かを行う必要がありますドライバのv2.0から、新しいasync
-only APIがあります。古いAPIは、新しいAPIを覆うファサードとして使用されなくなり、非推奨になります。 //api.mongodb:あなたは[documantion](HTTPを参照することができます
static async Task CreateIndex()
{
var client = new MongoClient();
var database = client.GetDatabase("HamsterSchool");
var collection = database.GetCollection<Hamster>("Hamsters");
await collection.Indexes.CreateOneAsync(Builders<Hamster>.IndexKeys.Ascending(_ => _.Name));
}
これは最新の回答です。 –
ピーナッツギャラリーの簡単な質問私は、C#の魔法の弦よりも強く型付けされたラムダの大ファンですが、ハムスターのオブジェクトにアドレスの配列(請求、物理、郵送など)があると仮定し、郵便番号によるインデックス残念なことに、Builders
:
var server = MongoServer.Create("mongodb://localhost");
var db = server.GetDatabase("myapp");
var users = db.GetCollection<User>("users");
users.EnsureIndex(new IndexKeysBuilder().Ascending("EmailAddress"));
ドキュメントの以下のビットを参照してください。
良いこれは完璧です – Payedimaunt
廃止、I3arnonの回答を参照してください – meffect
EnsureIndex
が、将来のために廃止されたマークされているとして、あなたがCreateIndex
を使用する必要がありますMongoDB
の次のバージョンとの互換性:
@PhilBarresi既存のものを削除して新しいものを作成することを意味しますか?あるいは、別のインデックスを作成するだけですか? どちらも起こりません。 – i3arnon
明らかに私は間違っていた。インデックスを作成するコマンドを送信しますが、インデックスがすでに作成されている場合は、結果としてノーオペレーションになります。私の誤解は、フォアグラウンドインデックスの作成に伴うエラーから来て、他のcreateindexコールがブロックされてインデックスを再構築していると私に信じさせていました。申し訳ありません、I3arnonはここにあります。 –
ConfirmIndexがそうではないのに対し、CreateIndexは私のコードでは廃止とマークされているようです。この情報は間違いありませんか?私は、バージョンの更新でどのバージョンが廃止されたのかを変更してしまったとは思えませんでした(私たちが異なるバージョンのコードを見ているとは信じられません)。 – Chris
:
インデックスを作成するには、現在推奨される方法は、呼び出しと
Builders.IndexKeys
を使用して、あなたが得るIndexKeysDefinition
とCreateOneAsync
を待っていることです。 org/csharp/current/html/e5bf7883-8321-89e4-3993-8069a61fa8b8.htm)。 'MongoCollection.EnsureIndexメソッド 'があります。 – Schaliasos[C#でMongoDBユニークキーを作成する](http://stackoverflow.com/questions/6218966/creating-mongodb-unique-key-with-c-sharp) – WiredPrairie