mongodb学习(二)
来源:互联网 发布:网络大电影转化率 编辑:程序博客网 时间:2024/04/28 02:34
现在谈论一下复杂点的“增删改查”。“文档”是采用“K-V”格式存储的。Json里value可能是字符串,也可能是数组,也有可能是内嵌的一个json对象。相同的方式也适用于Bson。常见的两种插入就是单条插入和批量插入。
一、Insert插入
①:单条插入
之前说了,mongo命令打开的也是一个js shell。所以js语法在这里也行的通。
var temp={“name”:"bob","password":"12345","age":21,"address":{"province":"jiangxi","city":"nanchang"},"favourite":["apple","banana"]}
db.user.insert(temp)
temp.name="jay"
temp.age=25
temp.address={"province":"taiwan","city":"tainan"}
temp.favourite=["money","dance"]
db.user.insert(temp)
查询2条记录。
②:批量插入
mongodb里没有提供批量查询的方法,我们可以采用for循环的方式进行批量插入。
二、Find操作
平常我们查询,用的最多就是
> >= < <= != = And OR In NotIn
在mongodb里面对应 $gt $gte $lt $lte $ne “没有特殊关键字" "无关键字" "$or" "$in" "$nin"
db.user.find({"age":{$lt:22}}) age>22
db.user.find({"age":{$lt:22}}) age<22
db.user.find({"age":{$gte:22}}) age>=22
db.user.find({"age":{$lte:22}}) age<=22
db.user.find({"age":{$ne:22}}) age!=22
db.user.find({"age":"22"}) age==22
db.user.find({"name":"jay","age":20}) name=jay&&age=20
db.user.find({$or:[{"address.province":"jiangxi"},{"address.province":"guangdong"}]}) address,province=jiangxi or address.province=guangdong
db.user.find({"address.province":{$in:["jiangxi","guangdong"]}}) address.province in ["jiangxi","guangdong"]
db.user.find({"address.province":{$nin:["jiangxi","guangdong"]}}) address.province not in ["jiangxi","guangdong"]
mongodb正则表达式匹配
db.user.find({"name":/^j/,"name":/e$/})
$where结合js
db.user.find({$where:function(){return this.name=='jack'}})
三、update操作
更新包括整体更新和局部更新。
var model=db.user.findOne({"name":"jack"})
model.age=30
db.user.update({"name":"jack"},model)
①:$inc修改器
$inc也就是increase的缩写,每次修改会在原有的基础上自增$inc指定的值。如果文档中没有此key,则会创建key
db.user.update({"name":"jack"},{$inc:{"age":30}}")
②:$set修改器
db.user.update({"name":“jacak”},{$set:{"age":10}})
③upsert操作
这个是mongodb创造的“词”,这个操作就是说:如果我没有查询到,我就在数据库里面增加一条,好处就是:避免了我在数据库里面判断是update还是add操作。
将update的第三个参数设为true即可。
db.user.update({"name":"kobe"},{$inc:{"age":34}},true)
④:批量更新
在mongodb中如果匹配多条,默认情况下只更新第一条,那么如果我们有需求必须批量更新,只需将update的第四个参数中设为true即可。
四、Remove操作
- mongoDB学习(二)
- mongodb学习(二)
- MongoDB学习总结(二)
- MongoDB学习笔记(二)
- mongodb初步学习(二)
- MongoDB学习笔记(二)
- 学习MongoDB 十: MongoDB聚合(Map-Reduce)(二)
- NoSql数据库MongoDB学习(二)MongoDB安装
- MongoDB学习资料二---MongoDB主从复制介绍(转)
- MongoDB学习笔记(二)使用Java操作MongoDB
- 【mongodb系统学习之十】mongodb查询(二)
- MongoDB学习日记(二):MongoDB的简介
- MongoDB学习笔记(二)MongoDB常见操作
- MongoDB学习笔记(二)(查询)
- MongoDB学习(二):数据类型和基本概念
- MongoDB 学习笔记(二) 之查询
- MongoDB学习(二):数据类型和基本概念
- MongoDB学习(二):数据类型和基本概念
- JVM内存管理和垃圾回收(一)
- android 错误:找不到符号
- android休眠唤醒机制-wakelock
- CMS仿站必备工具之ScrapBook火狐插件
- VS2013中添加现有窗体项
- mongodb学习(二)
- 关于SQLSERVER中使用正则表达式的方式
- SwipeRefreshLayout的进度圈圈无法显示的问题
- hbase的并发控制机制
- 实现TCP连接的AT指令
- 基于SSDB的分布式锁
- HDU 1998 奇数阶魔方 (找规律)
- JavaSE_Java反射机制详解(Field,Method) 及 Method.invoke使用方法
- mysql常用函数