ongoDB中文档存入数据库后用update方法更新文档,update方法有两个参数,例如

update(args1,args2)

args1是指查询文档的条件;

args2是指对查询到的文档进行什么样的修改;

 

$inc用来增加已用的键值,如果键不存在就创建;

$Inc只能修改的键值必须为整数、长整型和双精度浮点型,不能是其他类型。


使用$inc增加键值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> db.post.findOne({ "id" :0})   
{    
         "_id"  : ObjectId( "54a530c3ff0df3732bac167f" ),    
         "id"  : 0,    
         "name"  "joe" ,    
         "age"  : 65,    
         "comments"  : {    
                 "1"  : 4,    
                 "2"  : 2,    
                 "3"  : 3    
         }    
}    
> db.post.update({ "id" :0}, {$inc:{ "age" :6}})    
WriteResult({  "nMatched"  : 1,  "nUpserted"  : 0,  "nModified"  : 1 })

修改后结果:   

1
2
3
4
5
6
7
8
9
10
11
12
> db.post.findOne({ "id" :0})    
{    
         "_id"  : ObjectId( "54a530c3ff0df3732bac167f" ),    
         "id"  : 0,    
         "name"  "joe" ,    
         "age"  : 71,    
         "comments"  : {    
                 "1"  : 4,    
                 "2"  : 2,    
                 "3"  : 3    
         }    
}

使用$inc减少键值:   

1
2
> db.post.update({ "id" :0}, {$inc:{ "age" :-16}})    
WriteResult({  "nMatched"  : 1,  "nUpserted"  : 0,  "nModified"  : 1 })

修改后的结果:   

1
2
3
4
5
6
7
8
9
10
11
12
13
> db.post.findOne({ "id" :0})    
{    
         "_id"  : ObjectId( "54a530c3ff0df3732bac167f" ),    
         "id"  : 0,    
         "name"  "joe" ,    
         "age"  : 55,    
         "comments"  : {    
                 "1"  : 4,    
                 "2"  : 2,    
                 "3"  : 3    
         }    
}    
>