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

时间:2014-04-18 12:50:23

标签: c# mongodb document insert-update

我有以下数据结构:

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
    }
}

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

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

1 个答案:

答案 0 :(得分:2)

这是对$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 
        }
    }
)

根据您的实际需要。

或者作为带有Builder的C#类型代码:

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);