• MongoDB语法


    一、mongodb基础语法

    1.1 数据库

    1、查询数据库:show dbs;
    2、创建数据库:use mytest;#如果数据库不存在,则会创建数据库,并没有真正创建数据库, 而是插入了一些数据之后, 才会创建数据库和集合
    3、删除数据库:db.dropDatabase();

    1.2 表操作

    1、创建表

    1、显示所有集合(表):show collections;
    2、创建集合(表):db.createCollection("table5");
    3、删除所有集合(表):db.dropDatabase();
    4、删除某一张集合(表):db.table5.drop();

    2、创建固定集合(表) 【table6】,整个集合空间大小 6142800 B, 文档最大个数为 10000 个。

    db.createCollection("table6", { capped : true, autoIndexId : true, size : 
       6142800, max : 10000 } )

    3、插入数据,如果表不存在则会自动创建表

    #插入简单表
    db.table1.insertOne(
    {
        id:1,
        name:"测试数据",
        age:12
    })
    
    db.table1.insert(
    {
        id:3,
        name:"测试数据2",
        age:23
    })
     
    
    #插入复杂表数据
    db.table2.insertOne(
    {
        id:1,
        name:"测试数据",
        age:12,
        child:[
            {id:1,name:"子节点1"},
            {id:1,name:"子节点2"},
            {id:1,name:"子节点3"},
        ],
        house:["3号楼1","3号楼2"]
    })

    #插入多条
    db.table7.insertMany([ { "_id" : 1, "char" : "Brisbane", "class" : "monk", "lvl" : 4 }, { "_id" : 2, "char" : "Eldon", "class" : "alchemist", "lvl" : 3 }, { "_id" : 3, "char" : "Meldane", "class" : "ranger", "lvl" : 3 } ]);
     

    1.3、更新

    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 :可选,抛出异常的级别。
    db.table1.update({id:1}, {$set:{name:"修改数据"}})

    1.4、删除

    db.collection.remove(
       <query>,
       {
         justOne: <boolean>,
         writeConcern: <document>
       }
    )

    说明:

    • query :(可选)删除的文档的条件。
    • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
    • writeConcern :(可选)抛出异常的级别。
    1、根据条件删除:db.table1.remove({id:1},1)
    2、清空之前的数据:db.table1.remove({})
    3、删除匹配的多份文档中的第一份文档:db.table1.deleteOne({status:"A"})

    1.5、简单查询

    db.collection.find(query, projection)

    语法说明:

    • query :可选,使用查询操作符指定查询条件
    • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
    1、查询数据:db.table1.find({id:1})
    2、查询单条数据:db.table1.findOne({id:1})
    3、以易读的方式来读取数据:db.table1.find().pretty();
    操作格式范例类似sql语句
    等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
    小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
    小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
    大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
    大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
    不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50

     

    1.6、模糊查询&or查询

    模糊查询:

    1、模糊查询:db.table1.find({id:1,"name":{ $regex:/XXX/ }})
    2、查询以某字段为开头的文档:db.table1.find({"name":{$regex:/^XXX/}})
    3、查询以某字段为结尾的文档:db.table1.find({"name":{$regex:/XXX^/}})
    4、查询忽略大小写:db.table1.find({"name":{$regex:/XXX/i}}) #i 是其的一个选项,代表忽略大小写的意思。

    OR查询:

    db.table1.find(
       {
          $or: [
             {key1: value1}, {key2:value2}
          ]
       }
    ).pretty()

    子查询:

     

    db.table2.find({
        $or:[
            {"child.name":"子节点1"},
            {"child.id":1}
        ]
    });
    
    
  • 相关阅读:
    idea的使用和安装破解 2019.2
    get请求和post请求的区别
    MySQL-事务
    MySQL-mysql的查询练习
    MySQL-mysql的多表查询
    CodeForces
    2018宁夏邀请赛网赛 I. Reversion Count(java练习题)
    HDU
    Codeforces Round #479 (Div. 3)解题报告
    nyoj 1274信道安全 第九届河南省赛(SPFA)
  • 原文地址:https://www.cnblogs.com/raorao1994/p/14994737.html
Copyright © 2020-2023  润新知