Mongodb-修改器1
我们通常需要对文档进行更新,那么会使用到修改器,用来指定复杂的更新操作,如增、删、改,还可以操作数组或者内嵌文档。
下面介绍几个常用的修改器
1.$inc
可以对文档中值为数字型的键进行增减的操作,使用修改器时”_id”的值不能改变。
比如想要对某个网站,只要有人访问就增加一次点击量,可以使用此修改器
{
"_id" : ObjectId("4003b6178af21ff428dafbe5"),
"url":"www.bi.efeihu.com",
"pageviews":50
}
增加pageviews的值,如下:
>db.bitest.update({"url":"www.bi.efeihu.com"},{"$inc":{"pageviews":1}})
当重新查询时会发现pageviews增加了1
{
"_id" : ObjectId("4003b6178af21ff428dafbe5"),
"url":"www.bi.efeihu.com",
"pageviews":51
}
2.$set
指定一个字段的值,如果此字段不存在则创建。
>db.bitest.findOne()
{
"_id":ObjectId("5067b6178ay71ff428ddaes85") ,
"name":"Daisy",
"Customernumber","F7510478",
"age":"30",
"sex":"male"
}
如果要添加电话号码,可以使用$set
>db.bitest.update({"_id":ObjectId("5067b6178ay71ff428ddaes85")},{"$set":{"phonenumber":"13699487658"}})
再查询文档就会发现已经添加电话
>db.bitest.findOne()
{
"_id":ObjectId("5067b6178ay71ff428ddaes85") ,
"name":"Daisy",
"Customernumber","F7510478",
"age":"30",
"sex":"male",
"phonenumber":'13699487658'
}
$set可以修改键的类型,将phonenumber键变成一个数组
>db.bitest.update({"_id":ObjectId("5067b6178ay71ff428ddaes85")},{"$set":{"phonenumber":["13699487658","18382337373"]}})
查询结果:
>db.bitest.findOne()
{
"_id":ObjectId("5067b6178ay71ff428ddaes85") ,
"name":"Daisy",
"Customernumber","F7510478",
"age":"30",
"sex":"male",
"phonenumber":[
"13699487658",
"18382337373"
]
}
$set还可以更新内嵌的文档
>db.freight.findOne(){
"_id":ObjectId("5003be465af21ff428dafbe7"),
"productno":"20302568310",
"weight":"20",
"size":{
"height":15,
"width":10,
"length":15
}
}
更新height值
>db.freight.update({"product":"20302568310"},{"$set":{"size.height":11}})
查看结果
>db.freight.findOne(){
"_id":ObjectId("5003be465af21ff428dafbe7"),
"productno":"20302568310",
"weight":"20",
"size":{
"height":11,
"width":10,
"length":15
}
}
更多文章可參考:http://forum.foxera.com/mongodb/category/27/server-shell

浙公网安备 33010602011771号