增
<mark>插入一条</mark>
use test
db.c1.insert({name:"an", age:18})
<mark>插入多条数据</mark>
1.
db.c1.insert([
{name:"an1", age:3},
{name:"an2", age:4},
{name:"an3", age:5}
])
use test2
for (var i=1; i<=10; i++) {
db.c2.insert({name: "an"+i, age: i})
}
R查(比较复杂)
基础语法: db.集合名.find(条件 [查询的列])
条件
查询所有数据 {}或者不写
查询age=88的数据 {age:88}
既要age=88又要性别=男 {age:88,sex:'男'}
查询的列(可选参数
不写 - 这查询全部列(字段
{age:1} 只显示age列(字段
{age:0} 除了age列(字段都显示
注意:_id是系统字段,永远都在
升级语法
db.集合名.find({键:值}) 注:值不直接写
{运算符:值}
db.集合名.find({
键:{运算符:值}
})
运算符 | 作用 |
---|---|
$gt | 大于 |
$gte | 大于等于 |
$lt | 小于 |
$lte | 小于等于 |
$ne | 不等于 |
$in | in(包含) |
$nin | not in (不包含) |
查询所有数据
db.c1.find()
查询年龄等于10岁的数据
db.c1.find({age:10})
查询年龄大于10岁的数据
db.c1.find({age:{$gt:10}})
查询年龄是3岁、6岁、9岁的数据
db.find({age:{$in[3,6,9]}})
只看年龄列,或者年龄以外的列
//只看年龄
db.c1.find({},{age:1})
//年龄外
db.c1.find({},{age:-1})
改(也很复杂)
基础语法: db.集合名.update(条件, 新数据 [是否新增,是否修改多条])
是否新增:指条件匹配不到数据则插入(true是插入,false否不插入默认)
是否修改多条:指将匹配成功的数据都修改(true是,false否默认)
升级语法
db.集合名.update(条件, 新数据)
{修改器: {键:值}}
是否新增:指匹配不到数据则插入(true-是插入,false-否不插入默认)
是否修改多条:将匹配成功的数据都修改(true-是,false-否默认)
修改器 | 作用 |
---|---|
$inc | 递增 |
$rename | 重命名列 |
$set | 修改列值 |
$unset | 删除列 |
将an的姓名改为an88
db.c1.update({name:"an"}, {$set: {name: "an88"}})
给{name:“an”}的年龄加2岁或者减2岁
//+两岁
db.c1.updata({name:"an"},{$inc:{age:2}})
//-两岁
db.c1.updata({name:"an"},{$inc:{age:-2}})
同时修改多个字段
db.c1.update({name:"an"}, {
$set: {name: "an88"},//修改姓名
$inc: {age: 111},//年龄添加111
$rename: {gender: "sex"},//重命名列名
$unset: {yanzhi: true}//删除颜值列
})
修改数据,如果没有新增
//false默认,没有不操作
db.c1.updata({name:"an"},{$set:{name:"an88"}},false)
//true,如果没有,添加
db.c1.updata({name:"an"},{$set:{name:"an88"}},true)
同时修改多条数据
//默认false 只修改第一条
db.c1.update({},{$set:{age:100}},false,false)
//true 修改全部
db.c1.update({},{$set:{age:100}},false,false)
删
//false 默认删除全部
db.c1.remove({},false)
//true 只删除一条
db.c1.remove({},true)
//条件判断参考查看