先附带一些基本的操作1,命令行进入mongodb,并切换数据库
[root@log-test ~]# mongo
MongoDB shell version: 2.0.1
connecting to: test
> use logs //数据库
switched to db logs
>
2,查询出2条数据
> db.logs.find().limit(2)
{ "A" : "456464", "D" : "2011-11-30 00:02:22", "I" : "192.168.1.1", "M" : "DFSDFSD", "MI" : "DFDSFDSFDSF", "O" : "Login", "P" : "test001", "S" : 1, "T" : "Login", "U" : "ZHANGJM", "_id" : ObjectId("4ed6e9cc20c8485a5d55a12c") }
{ "_id" : ObjectId("4ed76179e4e58a85f892afa3"), "S" : 16, "I" : "192.168.1.89", "U" : "hyib38", "A" : "", "D" : "2011-12-01 01:52:00", "P" : "com.hy.market.registration.web.MARKKETERAction method:registrer (english)", "T" : "register", "O" : "register", "M" : "<hyib38>: write db success demo [,User name: <hyib38>, First name: <sdsd>, Middle Name: <null>, Surname name: <sdsdsdsd>, Area of residence: <Antigua and Barbuda>, Account type: <null>, Phone: <1268 - - 22222222222>, Phone2: < - - >, Email: <xf.li@cn.henyep.com>, affiliate ID: <AE1-W01>, verification code: <1s47>, language: <english>, campaignID: <>,PAP affiliate ID: <>,REFERE: <null>,accepted Customer Agreement: <yes>, accepted Customer Agreement: <Henyep Investment Customer Agreement MiFID Compliant - English.pdf|2011-01-18 10:40:33>, type:<webclient>]", "MI" : "Reg001\r" }
>
现在进入正题,更新的语法如下
db.collection.update( criteria, objNew, upsert, multi )
criteria : update的查询条件,类似sql update查询内where后面的
objNew : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
现在我们将S为1的 U为ZHANGJM 改为 zhangjianming。执行
> db.logs.update({S:1},{$set:{U:"zhangjianming"}})
再次查询,结果如下,已经将U字段的值update
> db.logs.find({S:,1}).limit(1)
{ "A" : "456464", "D" : "2011-11-30 00:02:22", "I" : "192.168.1.1", "M" : "DFSDFSD", "MI" : "DFDSFDSFDSF", "O" : "Login", "P" : "test001", "S" : 1, "T" : "Login", "U" : "zhangjianming", "_id" : ObjectId("4ed6e9cc20c8485a5d55a12c") }