mongodb教程之入门四增删改查

基础 :

查看当前都有哪些数据库

show dbs

查看当前数据库都有哪些表

show collections

增加数据 -- 往表名为xxx的数据库中添加/插入数据,数据格式为json格式

db.xxx.insert({'name','jscyl','ago':20})

删除数据

    删除表中的某个数据

    格式 : db.xx.remove({'xxx':xxx}) xx--表名 or xxx--条件

eg: db.jscyl.remove({'age':20})

    如果要删除的条件有多条数据

db.xx.remove({'xxx',xxx},{justOne:true})

    此时会默认删除相同条件的第一条数据

    ---------------------------------------------------------------------------------------

    删除数据库中的某个表

    格式 : db.xx.drop() xx--表名

eg: db.jscyl.drop()

  ---------------------------------------------------------------------------------------

    删除当前数据库

    法一 : 推荐

    首先要进入当前数据库 use xx

    然后再删除 db.dropDatabase()

    法二: 不推荐

    通过删除当前数据库中的表,如果将表全部删除则该当前数据库也会被删除


修改数据

   格式  xx--表名 or xxx--要修改的字段 or xxxx--修改后的字段

    db.xx.update({'xxx':xxx},{$set:{'xxxx':'xxxx'}})

eg:  db.jscyl.update({'name':'zhangsan'},{$set:{'name':'jscyl'}})

   如果要修改多个字段

db.jscyl.update({'name':'zhangsan'},{$set:{'name':'jscyl','age':20}})

查询数据 --精准查询(在实际中常用于后期查找出问题的数据)

   查找所有数据 xx是表名  

db.xx.find()

    可根据xxx的条件进行查询 xxx是json格式

db.xx.find({xxx})

    ---------------------------------------------------------------------------------------

  

    eg: 查询年纪 为20 的数据

 

        db.xx.find({"age":20})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询年纪 大于20 的数据

 

        db.xx.find({"age":{$gt:20}})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询年纪 小于20 的数据

 

        db.xx.find({"age":{$lt:20}})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询年纪 大于等于20 的数据

 

        db.xx.find({"age":{$gte:20}})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询年纪 小于等于20 的数据

 

        db.xx.find({"age":{$lte:20}})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询年纪 小于等于30并且大于等于20 的数据

 

        db.xx.find({"age":{$gte:20,$lte:30}})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询 年纪等于20并且姓名为张三 的数据

 

        db.xx.find({"age":20,"name":"zhangsan"})

 

模糊查询 -- 查询大量数据

 

xx为表名 xxx为查询的条件

 

    db.xx.find({"xxx":/xxx/});

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询表中带有 文章 的数据

 

        格式 : db.xx.find({"xxx":/xxx/}) xx--表名 or xxx--条件

 

        db.jscyl.find({"name":/文章/});

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询表中 以z开头 的数据

 

        格式 : db.xx.find({"xxx":/^xxxx/}) xx--表名 or  xxx--要查询的字段 or xxxx--该字段的条件

 

        db.jscyl.find({"name":/^z/});

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询表中指定字段的数据 -- 查询表中的 name 字段

 

        格式 : db.xx.find({},{xxx:1}) xx--表名 or xxx--条件

 

        db.jscyl.find({},{name:1});

 

        如果是多个指定的数据

 

        db.jscyl.find({},{name:1,age:1});

 

        ---------------------------------------------------------------------------------------

 

    eg: 查询表中指定字段的数据 -- 查询表中年纪大于10的学生的姓名的数据

 

        其中 条件为 年纪大于10  指定的数据是学生的姓名

 

        格式 : db.xx.find({xxx},{xxxx:1}) xx--表名 or xxx--条件 or xxxx-- 指定的数据

 

        db.jscyl.find({'age':{$gt:20}},{name:1});

 

        在实际场景中常用于 ajax接口返回页面指定的数据,而并非返回全部的数据,减轻服务器压力,方便渲染

 

    ---------------------------------------------------------------------------------------

 

    eg: 升序(从小到大)

 

        格式  db.xx.find({}).sort({'xxx':1}) xx--表名 or  xxx--为要排序的字段

 

        db.jscyl.find({}).sort({'age':1})

 

    ---------------------------------------------------------------------------------------

 

    eg: 降序(从大到小)

 

        格式  db.xx.find({}).sort({'xxx':-1}) xx--表名 or  xxx--为要排序的字段

 

        db.jscyl.find({}).sort({'age':-1})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询前两条数据

 

        格式  db.xx.find({}).limit(xxx) xx--表名 or xxx--条数

 

        db.jscyl.find({}).limit(2)

 

        在实际项目中常用于分页

 

    ---------------------------------------------------------------------------------------

 

    eg: 跳过前两条查询第三条到第五条数据

        

        格式  db.xx.find().skip(xxx).limit(xxxx) xx--表名 or  xxx--跳过的条数 or xxxx--第几条到第几条的数据

 

        db.jscyl.find().skip(2).limit(3)

 

        在实际项目中常用于分页

 

        第一页  db.jscyl.find().skip(0).limit(2)

 

        第二页  db.jscyl.find().skip(2).limit(2)

 

        第三页  db.jscyl.find().skip(4).limit(2)

 

        第四页  db.jscyl.find().skip(6).limit(2)

 

        ...

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询年纪是20或者年纪是24的数据

 

        格式  db.xx.find({$or:[{'xxx':xxx},{'xxx':xxx}]})  xx--表名 or xxx--条件

 

        db.jscyl.find({$or:[{'age':20},{'age':24}]})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询年纪是20并且姓名是张三的数据

 

        格式  db.xx.find({'xxx':xxx,'xxx':xxx}) xx--表名 or  xxx--条件

 

        db.jscyl.find({'age':20,'name':'张三'})

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询第一条数据(多种方法)

 

        格式  db.xx.findOne() --该方法是系统方法

 

        db.jscyl.findOne()

 

    ---------------------------------------------------------------------------------------

 

    eg: 查询总共有多少条数据

 

        格式  db.xx.find().count()

 

        db.jscyl.find().count()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值