尝试使用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 :(得分: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
}
}