MongooDB更新许多仅更新第一个匹配项

时间:2018-11-22 12:21:50

标签: mongodb

我在mongoDB中有一个集合,我需要更新他的值。 一个元素包含一个object_properties列表,我需要更新sync_with_BOEM_filed_id匹配的所有object_properties的值。

enter image description here

我有此代码:

FilterDefinition<object> filter = 
Builders<object>.Filter.ElemMatch(x => x.Properties,  
Builders<object>.Filter.Eq(r => r.SyncWithBOEMFieldId, kvp.Key));

其中kvp.Key包含sync_with_BOEM_filed_id值。 在这种情况下,我具有应更新的三个属性(2,3,4),但始终仅第一个属性被更新。

UpdateDefinition<object> update=
Builders<object>.Update.Set("object_properties.$.value", 
kvp.Value.Item2);

bulkCommands2.Add(new UpdateManyModel<object>(filter,update));

 await m_TenantMongoClient.MongoDbDatabase.GetCollection<BlueDolphinObjectItem>("objects")
.BulkWriteAsync(MyBulkCommands2);

我错过了一些东西,为什么它不更新所有元素?筛选器从数据库中查找所有元素,但仅更新其object_properties列表中的第一个匹配项。 任何建议表示赞赏!

0 个答案:

没有答案