MongoDB:好好说说mogodb的增删改查
一、insert操作:
mongodb的每一行(文档,上篇文章说的mongodb的三要素之一)都是采用K-V的方式存储的,对json熟悉的童鞋学mongodb肯定是手到擒来,对于Value,可能是个字符串,也可能是个数组,又可能是一个内嵌的json对象,相同的规则同样适用于BSON。
插入操作常见的有两种方式,单条插入和批量插入:
1、单条插入:
var single={"name":"chenglong","password":"12345","age":20,"address":{"province":"anhui","city":"hefei"},"favourite":["apple","banana"]}db.user.insert(single)db.user.find()
可以直接声明对象,是不是蛮diao的!
2、批量插入,批量插入的方法和单条唯一的区别是,你可以写个for循环,里面放入insert语句。就这么简单。
二、find操作
平时的开发中,我们经常使用的查询操作,一般都是下面两种:
1、> >= < <= != =
2、and or in notin
可喜的是,这些操作在mongodb中已经封装好了,做开发的都喜欢这种,拿来用就是:
<1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面1是一一对应的,代码
>db.user.find({"age":{$gt:19}})>=db.user.find({"age":{$gte:19}})<db.user.find({"age":{$lt:22}})<=db.user.find({"age":{$lte:22}})!=db.user.find({"age":{$ne:22}})
<2> "无关键字“, "$or", "$in","$nin" 代码:
and 无关键字db.user.find({"name":"chenglong","age":20})ordb.user.find({$or:[{"address.province":"anhui"},{"address.province":"hunan"}]})indb.user.find({"address.province":{$in:["anhui","guangdong"]}})nindb.user.find({"address.province":{$nin:["anhui","guangdong"]}})
<3>,另外mongodb还能匹配正则表达式,真的很强大!
正则表达式/* find name startwith 'c' and endwith 'g' */db.user.find({"name":/^c/,"name":/g$/})
<4>,查询很复杂的时候,我们还可以用$where来作为我们的大招,因为where中的value,可以放我们js中的方法体!
让我们查找‘chenglong’
$where/* find name="chenglong" */db.user.find({$where:function(){return this.name=='chenglong'}})
三、update操作
update操作也是无非就两种,整体更新和局部更新!
<1>,上篇文章中,我们所用的更新,其实就是整体更新。
整体更新var upd=db.user.findOne({"name":"chenglong"})upd.age=30db.user.update({"name":"chenglong"},upd)db.user.find()
<2>,局部更新
有时候我们只需要更新一个字段,mongodb中已经给我们提供了两个 修改器: $inc 和 $set。
$inc修改器
1、 $inc也就是increase的缩写,学过sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在原有的基础上
自增$inc指定的值,如果“文档”中没有此key,则会创建key,下面的例子一看就懂。
db.user.update({"name":"chenglong"},{$inc:{"age":30}})db.user.find()2、$set修改器
$set修改器db.user.update({"name":"chenglong"},{$set:{"age":10}})db.user.find()
<3> upsert操作
这个可是mongodb创造出来的“词”,这个upsert操作就是说:如果我查到这条数据流,就update,如果我没有查到,我就在数据库里面新增一条。其实这样也有好处,就是避免了我在数据库里面判断是update还是add操作,使用起来很简单,将update的第三个参数设为true即可。
upsert操作db.user.update({"name":"chenglong"},{$inc:{"age":11}},true)
- 10-26如何快速熟悉阿里云新一代PolarDB数据库
- 12-22ORACLE 迁移到 DB2:如何把 Oracle partition 转化到 DB2
- 12-21DB2增差量备份恢复详尽演练
- 12-20DB2在线备份的恢复
- 12-20MongoDB:mongodb的安装和增删改查入门
- 12-20DB2环境变量与参数的备份
- 12-20DB2利用表空间备份重建数据库
- 12-20MongoDB:好好说说mogodb的增删改查
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复