MongoDB集合(表)内数据增删修查(CURD)

本文介绍了MongoDB中对集合数据进行增删改查的操作,包括插入单条和多条数据,基础和升级的查询语法,如按条件筛选、查询特定列,以及更新数据的各种方式,如修改单个字段、多个字段以及删除数据的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

插入一条

use test
db.c1.insert({name:"an", age:18})

插入多条数据
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不等于
$inin(包含)
$ninnot 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)
//条件判断参考查看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值