db.tasks.find({用户: “saturngod”});
返回
{ "_id" : ObjectId("4de20ef97065cc77c80541fd"),
"todo" : [
{
"id" : 1,
"desc" : "hi",
"done" : 0
},
{
"id" : 2,
"desc" : "hello",
"done" : 0
}
], "user" : "saturngod" }
我想在todo.id = 1时更新done = 1
所以,我写了
>db.tasks.update({'todo.id':1},{"$set":{todo:{done:1}}});
我丢失了所有待办事项并且只完成了设置: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" }
答案 0 :(得分:5)
得到了它。
db.tasks.update({'todo.id':1},{"$set":{"todo.$.done":1}});