2016-04-14 17 views
0

MongoDBを使いこなしてみると、名前をパラメータとする更新メソッドが作成され、存在する場合はOneylに置き換えられます。更新メソッドが動作しない

public void updateTry(string name) { 
      var mongoClient = new MongoClient("mongodb://localhost"); 
      var database = mongoClient.GetDatabase("football"); 
      var coll = database.GetCollection<BsonDocument>("Footballers"); 

      var documents = coll.Find(new BsonDocument()).ToList(); 
      for (int i = 0; i < documents.Count(); i++) { 
       if (documents[i].ContainsValue(name)) { 
        documents[i].Set("Name", "Oneyl"); 
       } 
      } 
     } 

イム私の目標を達成するために、単純なC#の構造体を使用しようとしているが、任意のMongoDB入力が歓迎され、このようなクエリとして、しかし、あなたはいくつかのクエリを提供することを決定した場合には、それらを説明してください。 Setメソッドを正しく使用しているかどうかわかりません。 「名前」はデータベース内の実際のフィールドです。

答えて

0

あなたは私があなたの文書

 MongoClient _client = new MongoClient(); 
     _database = _client.GetDatabase("Store"); 
     var collection = _database.GetCollection<BsonDocument>("Customers"); 
     var filter = Builders<BsonDocument>.Filter.Eq("_id", new BsonObjectId(new ObjectId(_id))); 
     var update = Builders<BsonDocument>.Update.Set("CompanyName", CompanyName_str) 
      .Set("ContactName", ContactName_str) 
      .Set("ContactTitle", ContactTitle_str) 
      .Set("Address", Address_str) 
      .Set("City", City_str) 
      .Set("Region", Region_str) 
      .Set("PostalCode", PostalCode_str) 
      .Set("Country", Country_str) 
      .Set("Phone", Phone_str); 
     try 
     { 
      collection.UpdateOne(filter, update); 
      IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); 
     } 
     catch (MongoWriteException mwx) 
     { 
      if (mwx.WriteError.Category == ServerErrorCategory.DuplicateKey) 
      { 
       // mwx.WriteError.Message contains the duplicate key error message 
      } 
     } 
を更新できるようにあなたの例を与えるためにあなたが形式や構造を文書知っておく必要があり、次のようなコードを使用することができますし、また、完璧です
関連する問題