你的位置:首页 > 数据库

[数据库]MongoDB 基础相关(二) 常用语句


常用的语句用的最多的无非就是增、删、改、查

MongoDB数据存储格式是bson,其实这种格式除了几个特殊的类型,其他的就是json的格式。所以部分数据显示可以用json格式化。在此推荐个网站可以格式化http://www.bejson.com/,虽然它要报json格式异常,但是格式还是转好了的

转换前:

转换后:

 

1.增

添加数据有3种方法:

1.insert

db.Client.insert({_id:new ObjectId(),Name:"xx",Sex:0,Created:new Date()});

_id可以不带,系统会自己给你加上,如果有特殊要求可以自己写

 

2.update

db.Client.update({ Name : "xxx" }, { $set : { Sex: 1 } }, { upsert : true });

如果Client表中没有 Name : "xxx"  的记录则会新加一条记录,如果有记录则更新 Sex: 1

upsert 为true的意思是如果没有找到对应的记录则添加,如果找到则更新。该参数默认情况下为false,则没有找到数据就不添加,也不更新

 

3.save

db.Client.save({Name:"xx",Sex:0,Created:new Date()});

添加时不用带_id,否则它会去更新_id对应的其他值

 

特别提醒:

new ObjectId()  是新建ObjectId的意思

new Date() 获取当前时间,系统默认的是0时区

 

2.删

remove

db.Client.remove({Name:"xxx"});

删除满足{Name:"xxx"}条件的所有数据

 

3.2里新加了2种新的删除方法

db.collection.deleteOne()    删除满足条件的第一个文档

db.collection.deleteMany()   删除满足条件的所有文档,执行之后会返回删除的个数  如:{ "acknowledged" : true, "deletedCount" : 3 }

这2种方法还没用过,先记录一下

 

3.改

修改数据有3种方法:

1.update

db.Client.update({Name:"xxx"},{$set:{Sex:0}},{multi:true})

查询条件:{Name:"xxx"}
修改项:{$set:{Sex:0}} 其中$set可以更换为其他修改器 $set为更新 $inc为累加($inc不能应用于非数字数据) $unset 删除指定的列
其他的$push $ne $addToSet $pop $pull 修改器还没仔细研究过,以后再来补充和细化
是否批量更新:{multi:true} 如果为false则只更新满足条件的第一个文档,为true则更新所有满足条件的

 

2.save

db.Client.save({_id:new ObjectId("574fa87df2e2723e85e624a3"),Name:"xx",Sex:0,Created:new Date()});

带上_id就可以更新指定id的所有列

 

特别提醒:

如果用save进行保存时少了Created列,那么更新后的数据就会没有Created列

 

3.findAndModify  更新并返回更新的数据

db.Client.findAndModify({query:{Sex:0},update:{$set:{Sex:1}}});

查询条件:query为键,查询条件为值,如上所示

修改项:update为键,修改列和项为值,如上所示,其中$set也可更换为其他修改器

需要注意的是,如果查询结果是多个,它只会更新满足条件的第一个文档并返回

 

4.查

 一般比较常用的是find、findOne,下一篇详细来写