MongoDB запрос на обновление - PullRequest
1 голос
/ 29 мая 2011

db.tasks.find ({пользователь: "saturngod"});

возвращается

{ "_id" : ObjectId("4de20ef97065cc77c80541fd"),
 "todo" : [
    {
        "id" : 1,
        "desc" : "hi",
        "done" : 0
    },
    {
        "id" : 2,
        "desc" : "hello",
        "done" : 0
    }
], "user" : "saturngod" }

Я хочу обновить done = 1, когда todo.id = 1

Итак, я написал

>db.tasks.update({'todo.id':1},{"$set":{todo:{done:1}}});

Я потерял все todo и только сделал готов: 1

db.tasks.find ();

{ "_id" : ObjectId("4de20ef97065cc77c80541fd"), "todo" : { "done" : 1 }, "user" : "saturngod" }

Как обновить значение? Я хочу сделать это

{ "_id" : ObjectId("4de20ef97065cc77c80541fd"),
 "todo" : [
    {
        "id" : 1,
        "desc" : "hi",
        "done" : 1
    },
    {
        "id" : 2,
        "desc" : "hello",
        "done" : 0
    }
], "user" : "saturngod" }

1 Ответ

5 голосов
/ 29 мая 2011

получил.

db.tasks.update({'todo.id':1},{"$set":{"todo.$.done":1}});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...