<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)
//条件判断参考查看