Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新MongoDb c#中的多个文档-更新数组_C#_Mongodb_Mongodb Query - Fatal编程技术网

更新MongoDb c#中的多个文档-更新数组

更新MongoDb c#中的多个文档-更新数组,c#,mongodb,mongodb-query,C#,Mongodb,Mongodb Query,我想更新集合中的文档集合,我不只是想更新实体上的一个字段,而是整个实体>我目前正在使用UpdateAsync逐个进行更新,但这对于多个实体来说非常缓慢 public class Car { public string Id {get;set;} public IEnumerable<string> Coulors {get;set;} // updated public IEnumerable<Model> Models {get;set;} //

我想更新集合中的文档集合,我不只是想更新实体上的一个字段,而是整个实体>我目前正在使用UpdateAsync逐个进行更新,但这对于多个实体来说非常缓慢

public class Car 
{
   public string Id {get;set;}
   public IEnumerable<string> Coulors {get;set;} // updated 
   public IEnumerable<Model> Models {get;set;} // updated
   public string Name {get;set;} // Not set 
}
public async void UpdateMany(IEnumerable<Car> cars)
{
    var filter = Builders<Car>.Filter.In(x => x.Id, cars.Select(x => x.Id));
    
    var update = Builders<Car>.Update.Set(x =< x.Colours , ??);
    //var update2 = Builders<Car>.Update.Set(x =< x.Models, ??);

    var options = new UpdateOptions { IsUpsert = true };

    return await DbSet.UpdateManyAsync(filter, update, options);
}
公车
{
公共字符串Id{get;set;}
公共IEnumerable Coulors{get;set;}//已更新
公共IEnumerable模型{get;set;}//已更新
公共字符串名称{get;set;}//未设置
}
公共异步void UpdateMany(IEnumerable cars)
{
var filter=Builders.filter.In(x=>x.Id,cars.Select(x=>x.Id));
var update=Builders.update.Set(x=
听起来你想要“替换”-

谢谢,但我不是特别想为performance reasonsOK做一个批量更新,所以你有一堆文档,你想用一个新文档替换所有文档吗?例如,第1辆车是红色保时捷911,第2辆车是绿色本田思域,第3辆车是蓝色丰田rav4,您想更新整个实体,以便所有3辆车现在都是银色雪佛兰camaros?我很难理解你所说的“我不只是想更新实体上的一个字段,而是整个实体”-可能在你的更改前后发布两个示例文档?对不起,我不清楚,我有一堆文档要一次性替换,我希望使用UpdateMany…过滤器上有索引吗?您到底在更改什么-如果您更改整个文档,那么您将一次又一次地得到同一文档的集合。之前和之后都有样本文档将有助于理解您正在尝试做什么。我正在更改对象上的两个集合颜色字符串[]和一个模型,它是一个模型数组。然后还有一个或两个其他字段我没有更新。是的,每个对象上都有一个Id