• mongodb的学习笔记一(集合和文档的增删改查)


    1数据库的增删改查

    一、增加一个数据库:

    use blog-----切换到指定的数据库,如果数据库不存在,则自动创建该数据库(新建的数据库,如果没有存储对应的集合,是不会显示出来的)
    

     二、删除一个数据库

    1首先用use 切换到你需要删除的数据库
    use  test
    2然后执行db.dropDatabase()命令
    db.dropDatabase()

    三、修改一个数据库的名字

    db.copyDatabase(fromdb, todb, fromhost)
    fromdb:源数据库,
    todb:目标数据库
    fromhost:原地址
    
    实例:修改blog的数据库名为blog123
    use blog
    db.copyDatabase("blog","blog3");
    db.dropDatabase()

    四、查询所有数据库

    show dbs
    

     2文档的增删改查(集合---表,文档--行,字段--列)

    一、增加文档

    db.table_name.insert(document):插入文档
    db.table_name.save(document):插入文档,如果带有id,则更新
    注意,document都是json格式
    实例:插入一个user实例
    db.user.insert({"name":"zhangsan","password":"123456"})
    或
    db.user.save({"name":"zhangsan","password":"123456"})

    二、删除文档

    db.table_name.remove(query,juseone)
    注意:query与justone都是JSON格式
    query:删除的查询条件
    justone:是否只删除一条文档
    示例:只删除一个name等于test的文档
    db.user.remove({"name":"test"},{justone:1})

    三、更新文档

    update语句:

    db.collection.update(
       <query>,
       <update>,
       {
         upsert: <boolean>,
         multi: <boolean>,
         writeConcern: <document>
       }
    )
    
    参数说明:
    
        query : update的查询条件,类似sql update查询内where后面的。
        update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
        upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
        multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
        writeConcern :可选,抛出异常的级别。
    
    示例:更新name为zhangsan的密码为111111,如果不存在就插入,如果存在多条,则只更新一条
    use blog
    db.user.update({"name":"zhangsan"},{$set:{"password":"111111"},true,false})

    update语句的更新操作符说明:

    1$set:相当于等号“=”,也可以为文档新增加一个字段,例如name不存在,则添加一个name字段
    例如:{$set:{“name“:“"123"}}
    
    2$inc:相当于“加等”“+=”,字段必须存在,
     例如:{$inc:{"ago":1}}
    
    3$unset:去除文档的某个字段
    例如:{$unset:{"ago":0}}
    4$push:为文档的某个字段添加一个数组值,如果字段不存在,则创建字段
    原记录:
    { "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ]}
    执行命令
    db.user.update({"name" : "zhangsan"},{$push:{"group":"sale"}})
    执行后
    { "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ,"sale"]}
    5$ne
    主要给数组类型键值添加一个元素时,避免在数组中产生重复数据,$ne在有些情况是不通行的。
     db.user.update({"group" : {$ne:"sale"}},{$push:{"group":"sale"}})
    6.数组修改器--$pop、$pull
    $pop从数组的头或者尾删除数组中的元素
    --从数组的尾部删除 1
    > db.c.update({"name" : "zhangsan"},{$pop:{"group":1}})
    $pull从数组中删除满足条件的元素,示例如下:
    > db.user.update({"name" : "zhangsan"},{$pull:{"group":"sale"}})
    
    7.数组的定位修改器
    -------------------------------------------------------------------
    在需要对数组中的值进行操作的时候,可通过位置或者定位操作符("$").数组是0开始的,可以直接将下标作为键来选择元素。
    示例如下:
    {"uid":"001",comments:[{"name":"t1","size":10},{"name":"t2","size":12}]}
    
    > db.c.find({"uid":"001"})
    { "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {
    "name" : "t1", "size" : 10 }, { "name" : "t2", "size" : 12 } ] }
    > db.c.update({"uid":"001"},{$inc:{"comments.0.size":1}})
    > db.c.find({"uid":"001"})
    { "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {
    "name" : "t1", "size" : 11 }, { "name" : "t2", "size" : 12 } ] }
    

    save()语句:

    save() 方法通过传入的文档来替换已有文档。语法格式如下:
    
    db.collection.save(
       <document>,
       {
         writeConcern: <document>
       }
    )
    document:JSON格式
    
    示例:更新name为zhangsan的密码为123456
    use blog
    db.user.save({ "_id" : ObjectId("574d9667ec9f7148b53f27d9"), "name":"zhangsan","password" : "123456" })
    

    四、查询文档

    db.table_name.find(query)
    query:json格式,可以使用操作符
    示例:查询ago大于20并且(name等于张三或password等于123456)的记录
    db.col.find({"ago": {$gt:20}, $or: [{"name": "zhangsan"},{"password": "123456"}]}).pretty()
    db.col.find().pretty():以合理的格式显示查询的内容
    
  • 相关阅读:
    hive_case
    hive_group
    linux-搭建ngnix
    Nfs服务器搭建
    几种常见的启动脚本
    linux 修改本机的端口映射
    oracle-sql计算
    linux 磁盘大小查看
    postMan测试接口的几种方式
    oracle迁移到12c的时列转行 wm_concat 报错解决
  • 原文地址:https://www.cnblogs.com/jeremy-blog/p/5547893.html
Copyright © 2020-2023  润新知