mongodb修改数据语句_mongodb对数据的增删改查

数据类型

下表为MongoDB中常用的几种数据类型:

Object ID:文档ID

String:字符串,最常用,必须是有效的UTF-8

Boolean:存储一个布尔值,true或false

Integer:整数可以是32位或64位,这取决于服务器

Double:存储浮点值

Arrays:数组或列表,多个值存储到一个键

Object:用于嵌入式的文档,即一个值为一个文档

Null:存储Null值

Timestamp:时间戳

Date:存储当前日期或时间的UNIX时间格式

object id

每个文档都有一个属性,为_id,保证每个文档的唯一性

可以自己去设置_id插入文档

如果没有提供,那么MongoDB为每个文档提供了一个独特的_id,类型为objectID

objectID是一个12字节的十六进制数

前4个字节为当前时间戳

接下来3个字节的机器ID

接下来的2个字节中MongoDB的服务进程id

最后3个字节是简单的增量值

插入

语法

db.集合名称.insert(document)

插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId

例1

db.stu.insert({name:'gj',gender:1})

例2

s1={_id:'20160101',name:'hr'}

s1.gender=0

db.stu.insert(s1)

简单查询

语法

db.集合名称.find()

更新

语法

db.集合名称.update(

,

,

{multi: }

)

参数query:查询条件,类似sql语句update中where部分

参数update:更新操作符,类似sql语句update中set部分

参数multi:可选,默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新

例3:全文档更新

db.stu.update({name:'hr'},{name:'mnc'})

例4:指定属性更新,通过操作符$set

db.stu.insert({name:'hr',gender:0})

db.stu.update({name:'hr'},{$set:{name:'hys'}})

例5:修改多条匹配到的数据

db.stu.update({},{$set:{gender:0}},{multi:true})

保存

语法

db.集合名称.save(document)

如果文档的_id已经存在则修改,如果文档的_id不存在则添加

例6

db.stu.save({_id:'20160102','name':'yk',gender:1})

例7

db.stu.save({_id:'20160102','name':'wyk'})

删除

语法

db.集合名称.remove(

,

{

justOne: }

)

参数query:可选,删除的文档的条件

参数justOne:可选,如果设为true或1,则只删除一条,默认false,表示删除多条

例8:只删除匹配到的第一条

db.stu.remove({gender:0},{justOne:true})

例9:全部删除

db.stu.remove({})

关于size的示例

例10

创建集合

db.createCollection('sub',{capped:true,size:10})

插入第一条数据库查询

db.sub.insert({title:'linux',count:10})

db.sub.find()

插入第二条数据库查询

db.sub.insert({title:'web',count:15})

db.sub.find()

插入第三条数据库查询

db.sub.insert({title:'sql',count:8})

db.sub.find()

插入第四条数据库查询

db.sub.insert({title:'django',count:12})

db.sub.find()

插入第五条数据库查询

db.sub.insert({title:'python',count:14})

db.sub.find()

数据查询

基本查询

方法find():查询

db.集合名称.find({条件文档})

方法findOne():查询,只返回第一个

db.集合名称.findOne({条件文档})

方法pretty():将结果格式

db.集合名称.find({条件文档}).pretty()

比较运算符

等于,默认是等于判断,没有运算符

小于$lt

小于或等于$lte

大于$gt

大于或等于$gte

不等于$ne

例1:查询名称等于'gj'的学生

db.stu.find({name:'gj'})

例2:查询年龄大于或等于18的学生

db.stu.find({age:{$gte:18}})

逻辑运算符

查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接

逻辑与:默认是逻辑与的关系

例3:查询年龄大于或等于18,并且性别为1的学生

db.stu.find({age:{$gte:18},gender:1})

逻辑或:使用$or

例4:查询年龄大于18,或性别为0的学生

db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})

and和or一起使用

例5:查询年龄大于18或性别为0的学生,并且学生的姓名为gj

db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:'gj'})

范围运算符

使用"$in","$nin" 判断是否在某个范围内

例6:查询年龄为18、28的学生

db.stu.find({age:{$in:[18,28]}})

支持正则表达式

使用//或$regex编写正则表达式

例7:查询姓黄的学生

db.stu.find({name:/^黄/})

db.stu.find({name:{$regex:'^黄'}}})

自定义查询

使用$where后面写一个函数,返回满足条件的数据

例7:查询年龄大于30的学生

db.stu.find({$where:function(){return this.age>20}})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值