Pregunta

I have following data structure:

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

I want to replace/update "area" and "dimension" separately for a document in objects collection with "_id" = 1.

[?] Please let me know how can i achieve using MongoDB C# driver.

¿Fue útil?

Solución

This is a very simple use of the $set operator. So essentially the update form is:

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

Alternately you do them separately:

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

According to you actual needs.

Or as C# type code with a 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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top