Je crée une collection de façon dynamique en utilisant C# (pilote MongDB). J'ai constaté que la collection n'est créée que si au moins un document y est inséré. Je procède comme suit. Puisque j'appelle CreatOne pour chaque insertion pour créer l'index, est-ce que cela va recréer l'index chaque fois que j'insère de nouveaux documents ? Existe-t-il un meilleur moyen de créer une collection et un index de façon dynamique que cette méthode ?
public static void CreatAndInsert(double value1, double value2, string collectoinName)
{
var connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);
var database = client.GetDatabase("sample");
//Create Index
var indexDefn = Builders<BsonDocument>.IndexKeys.Ascending("datetime");
string collectionName = collectoinName;
database.GetCollection<BsonDocument>(collectionName).Indexes.CreateOne(indexDefn, new CreateIndexOptions() { Background = true, Sparse = true});
//Create Collection
var dbcollection = database.GetCollection<BsonDocument>(collectionName);
var document = new BsonDocument
{
{ "_id", ObjectId.GenerateNewId()},
{ "Key1", value1 },
{ "Key2", value2},
{ "datetime", DateTime.Now }
};
dbcollection.InsertOne(document);
}