相关疑难解决方法(0)

如何使用官方c#驱动程序在MongoDB中使用Update.Set更新多个字段?

以下代码将允许我更新FirstName ="john"和LastName ="Doe"的电子邮件.如何在不使用Save()方法的情况下更新电子邮件和电话?

MongoDB.Driver.MongoServer _server = MongoDB.Driver.MongoServer.Create("mongodb://localhost");
MongoDB.Driver.MongoDatabase _dataBase = _server.GetDatabase("test");
MongoDB.Driver.MongoCollection<Person> _person = _dataBase.GetCollection<Person>("person");

//Creat new person and insert it into collection
ObjectId newId  = ObjectId.GenerateNewId();
Person newPerson = new Person();
newPerson.Id = newId.ToString();
newPerson.FirstName = "John";
newPerson.LastName = "Doe";
newPerson.Email = "john.doe@gmail.com";
newPerson.Phone = "8005551222";
_person.Insert(newPerson);

//Update phone and email for all record with firstname john and lastname doe
MongoDB.Driver.Builders.QueryComplete myQuery = MongoDB.Driver.Builders.Query.And(MongoDB.Driver.Builders.Query.EQ("FirstName", "John"),    MongoDB.Driver.Builders.Query.EQ("LastName", "Doe"));
MongoDB.Driver.Builders.UpdateBuilder update = MongoDB.Driver.Builders.Update.Set("Email", "jdoe@gmail.com");

_person.Update(myQuery, update);
Run Code Online (Sandbox Code Playgroud)

.net c# mongodb mongodb-.net-driver

42
推荐指数
4
解决办法
4万
查看次数

Mongo更新数组元素(.NET驱动程序2.0)

编辑:不寻找这样做的javascript方式.我正在寻找MongoDB C#2.0驱动程序的方法(我知道它可能不可能;但我希望有人知道解决方案).

我试图在我的mongodb中更新主文档中数组中嵌入的项的值.

我正在寻找一种强有力的方式来做到这一点.我正在使用Mongodb c#2.0驱动程序

我可以通过弹出元素,更新值,然后重新插入来实现.这感觉不对劲; 因为我正在覆盖可能在此期间写的内容.

这是我到目前为止尝试但没有运气:

private readonly IMongoCollection<TempAgenda> _collection;

void Main()
{
    var collectionName = "Agenda";
    var client = new MongoClient("mongodb://localhost:27017");
    var db = client.GetDatabase("Test");
    _collection = db.GetCollection<TempAgenda>(collectionName);
    UpdateItemTitle(1, 1, "hello");
}

public void UpdateItemTitle(string agendaId, string itemId, string title){
    var filter = Builders<TempAgenda>.Filter.Eq(x => x.AgendaId, agendaId);
    var update = Builders<TempAgenda>.Update.Set(x => x.Items.Single(p => p.Id.Equals(itemId)).Title, title);
    var result = _collection.UpdateOneAsync(filter, update).Result;
}
Run Code Online (Sandbox Code Playgroud)

.net c# mongodb

19
推荐指数
1
解决办法
2万
查看次数

标签 统计

.net ×2

c# ×2

mongodb ×2

mongodb-.net-driver ×1