使用 Mongo C# 2.0 驱动程序替换嵌入文档

2024-01-11

我有一个包含嵌入单元数组的文档,如下所示:

{
    "_id" : ObjectId("5807c22e959ca231f0c48a75"),
    "Code" : "Value",
    "Units" : [ 
        {
            "_id" : ObjectId("5807cc08959ca331f09c530e"),
            "Code" : "Foo",
            "Label" : "Foo"
        },
        {
            "_id" : ObjectId("5807cc08959ca331f09c530e"),
            "Code" : "Bar",
            "Label" : "Bar"
        },
    ]
}

我想通过 ID 找到一个单元并用新文档替换它。 我如何使用 Mongo C# Driver 2.0 来做到这一点?

提前致谢!


多谢你们。根据您的回答,我想出了以下解决方案:

var mainDocumentId = "5807c22e959ca231f0c48a75";
var arrayItemId = "5807cc08959ca331f09c530e"; //Id for foo

var unit = new Unit(...)
var filter = Builders<UnitType>.Eq(o => o.Id, mainDocumentId); // optional
filter &= Builders<UnitType>.Filter.ElemMatch(o => o.Units, o => o.Id == arrayItemId);
var update = Builders<UnitType>.Update.Set(o => o.Units[-1], unit);

collection.UpdateOne(filter, update);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Mongo C# 2.0 驱动程序替换嵌入文档 的相关文章

随机推荐