更新或替换MongoDB集合中的嵌入文档

本文关键字:文档 集合 替换 MongoDB 更新 | 更新日期: 2023-09-27 17:58:51

我有以下数据结构:

db.objects
{
    "_id" : 1,
    "name" : "object name",
    "type" : "rectangle",
    "area" : {
        "position_x1" : 0,
        "position_y1" : 0,
        "position_x2" : 0,
        "position_y2" : 0
    },
    "dimension" : {
        "width" : 0,
        "height" : 0
    }
}

我想为对象集合中"_id"=1的文档分别替换/更新"area""dimension"

[?]请告诉我如何使用MongoDB C#驱动程序实现。

更新或替换MongoDB集合中的嵌入文档

这是$set运算符的一个非常简单的用法。因此,本质上更新形式是:

db.objects.update(
    { "_id": 1 },
    {
        "$set": {
            "area": { /* all of your object properties */ },
            "dimension": { /* all of your object properties */ }
        }
    }
)

或者,你可以分别进行:

db.objects.update(
    { "_id": 1 },
    {
        "$set": {
            "area.position_x1": 1,
            "area.position_y1": 1,
            "dimension.width": 1 
        }
    }
)

根据您的实际需要。

或者作为C#类型的代码使用Builder:

var query = Query.EQ("_id",1);
var update = Update.Set("area.position_x1", 1)
    .Set("area.position_y1", 1)
    .Set("dimension.width", 1);
MongoCollection<Class>.update(query, update);