mongo(2)

mongodb学习记录(二)

更新操作(续)

更新数据 :

注意:mongodb使用update默认更新第一条数据 

注释:如果后边的参数为true则表示,如果需要更新的记录不存在,则插入一条新的
语法:db.[collection].update({"key":"value"},{$set:{"key":"value"}},true|false)

例子:把name为“dozx”的数据的name字段值改为“ketty”,如果不存在则插入一条name为“ketty”的数据
    db.csbn.update({"name":"dozx"},{$set:{"name":"ketty"}},true)

注释:后边的第一个boolean参数跟上边一样,第二个boolean类型的参数表示更新匹配到的所有记录
语法:db.[collection].update({"key":"value"},{$set:{"key":"value"}},true|false,true|false)

例子:更新所有name为“dozx”的数据
    db.csbn.update({"name":"dozx"},{$set:{"name":"ketty"}},false,true)

删除操作

删除数据:

注释:删除数据与条件匹配到的数据    
语法:db.[collection].remove({key:value})

例子:删除所有name为“dozx”的数据
    db.[collection].remove({"name":"dozx"})

删除表:
注释:删除某个文档(类似于mysql中的表)
语法:db.[collection].drop()

例子:删除名为“csbn”的表
    db.csbn.drop()  

mongodb索引

索引

查询索引 :

注释:查询某个文档
语法:db.[collection].getIndexes()
例子:查找csbn中的索引
    db.csbn.getIndexes()

创建索引 :

注释:创建一个索引。1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。
语法:db.[collection].ensureIndex({key:1|-1})
例子:在csbn中以“name”为关键字创建一个按升序的索引
    db.csbn.ensureIndex({name:1})

使用多个字段创建索引:

注释:使用多个字段创建索引(复合索引)
语法:db.[collection].ensureIndex({key1:1|-1,key2:1|-1})
例子:在csbn中使用name,age两个字段创建索引
    db.csbn.ensureIndex({name:1,age:-1})

实例:

在后台创建索引:
db.values.ensureIndex({open: 1, close: 1}, {background: true})

通过在创建索引时加background:true 的选项,让创建

多建索引:

例如db.[collection].insert({x:[1,2,3,4,5]})
x即为一个多件索引。即某字段的值为一个数组的时候,为该字段创建一个索引即为多键索引

复合索引 :

注释:需要根据多个条件查询时,需要复合索引.(1:表示按照按照升序创建索引。-1表示按照降序创建创建索引)
语法:db.[collection].ensureIndex({key1: 1 | -1, key2: 1 | -1})
例子:以x,y两个字段为索引创建复合索引
    db.csbn.ensureIndex({x:1,y:1})

过期索引 :

释义:在一段时间后会过期的索引。在索引过期后,相应的数据会删除.
应用场景:存储一些在一段时间之后会失效的数据,比如用户的登录信息,存储日志。 

注释:expireAfterSeconds参数表示经过多长时间索引过期,单位为秒。
语法:db.[collection].ensureIndex({key1:1|-1},{expireAfterSeconds:integer})
例子:为csbn表以x字段为索引,过期时间设为10秒
    db.csbn.ensureIndex({x:1},{expireAfterSeconds:10})

注意:1.存储在过期索引字段的值必须是指定的时间类型(必须是ISODate类型,或者是ISODate数组,否则不能被自     动删除)
     2.如果指定了ISODate数组,则按照最小的时间进行删除
     3.过起索引不能是复合索引。
     4.删除时间不是精确
       说明:删除过程是由后台程序每60秒跑一次,而且删除也需要一些时间,所以存在误差

图中标注注释:

标注一:创建一个过期索引,过期时间为30秒。
标注二:插入一条数据,key为“x”,value为“当前时间”(使用new Date()函数)。
标注三:刚插入后查询数据,可以查询出来。
标注四:过30秒后再次查询,刚插入的数据已经被自动删除。

菜鸟一枚,大神勿喷。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值