美文网首页
mongo-db 1 基础篇

mongo-db 1 基础篇

作者: 阿尔卡雷特 | 来源:发表于2018-12-15 11:49 被阅读0次

    数据操作

    1. 概念

    集合 = 表
    文档 = 表行数据

    2. 操作

    新增(集合不存在时会自动创建)

    > db.集合.insert(json数据)
    # 例如:
    > db.test.insert({x:1})
    
    # 动态插入数据
    > for(i=3;i<100;i++)db.test.insert({x:i})
    
    

    ps:可在插入时指定_id,例如: {x:2,_id:1}
    ps:值可以使用new Date() 插入当前时间

    数据查询

    1. 条件为空时返回所有记录
    2. 可跳过部分数据,相当于mysql的limit 后第一个参数
    3. 可限制查询条数,相当于mysql的limit 后第二个参数
    4. 可执行排序
    > db.集合.find(条件)
    # 例如{x:1}只查x:1的数据:
    > db.test.find({x:1})
    > db.test.find().skip(1).limit(2).sort({x:1})
    
    # 查询1条
    > db.tset.findOne() 
    

    例: db.test.find()
    结果:{"_id": ObjectId("12378371791d987"),"x":1}
    其中_id 为自动生成的唯一标示

    ps: 排序的值 1 为顺序=asc -1 为逆序=desc

    聚合查询

    db.集合.find(条件).count()

    数据更新

    1. 覆盖更新

    db.集合.update(目标查询条件,更新后的内容)

    #例:
    > db.test.insert({x:1,y:2,z:3})
    > db.test.update({x:1},{y:999})
    #更新后 {y:999}
    

    ps:mongo的覆盖更新,默认只覆盖更新第一条匹配的数据
    例:

    > db.test.insert({x:1})
    > db.test.insert({x:1})
    > db.test.insert({x:1})
    > db.test.update({x:1},{x:999})
    # 结果:{x:999},{x:1},{x:1}
    
    1. 部分属性更新
      db.集合.update(目标查询条件,{$set:更新后的内容})
      例:
    > db.test.insert({x:1,y:2,z:3})
    > db.test.update({x:1},{$set:{y:999}})
    # 更新后 {x:1,y:999,z:3}
    
    1. 查找的数据不存在就创建一条
      db.集合.update(目标查询条件,更新后的内容,true)
    # 例:
    > db.test.update({x:1},{y:999},true)
    # 更新后 {y:999}
    
    1. 全量更新
      db.集合.update(目标查询条件,{$set:更新后的内容},false,true)

    ps:只能更新部分属性{$set:xx}
    例:

    > db.test.insert({x:1})
    > db.test.insert({x:1})
    > db.test.insert({x:1})
    > db.test.update({x:1},{$set:{x:999}},false,true)
    # 结果:{x:999},{x:999},{x:999}
    
    1. 数据删除
      db.集合.remove(目标查询条件)
    > db.test.insert({x:1})
    > db.test.insert({x:1})
    > db.test.insert({x:1})
    > db.test.remove({x:1})
    # 结果:
    

    ps:不允许不传参数(不能向查询全部那样)

    1. 集合删除(表删除)
      db.集合.drop()

    相关文章

      网友评论

          本文标题:mongo-db 1 基础篇

          本文链接:https://www.haomeiwen.com/subject/cbzohqtx.html