mongoDB基础(库,集合,数据)的增删改查

MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系型数据库和菲关系型数据库(nosql)之间的产品,是份关系数据库中功能最丰富,最像关系数据库的。
MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
特点:面向集合存储,易存储对象类型的数据
      支持查询,以及动态查询
      支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言
      支持存储格式为BSON(一种JSON的扩展)
      支持复制和故障恢复和分片

以下是MongoDB的基础操作:

库操作

  1. 查询所有库:    show dbs;        默认只有一个local库,还有一个默认隐藏不可见的数据库 admin
  2. 显示当前库:    db
  3. 选中一个库:    use 库名;        存在库使用当前库  不存在则创建当前库
  4. 删除一个库:    db.dropDatebase();    选中那个库,删除的就是当前选中的库
  5. 修改当前库名:    

集合操作

创建一个集合:    

    显式创建:db.createCollection("t_product");

    隐式创建:db.t_product.insert({"name":"iphone","color":["黑色","金色","银色"],...})2

删除一个集合:    db.集合名.drop();

查询所有集合:    show collections;

修改集合名称:    

数据操作

集合中添加数据:    

    向集合中插入一条数据:db.t_product.insert({"name":"iphone","price":5000,date:"2018-07-07"});

    向集合中插入多条数据:db.t_product.insert([{"name":"iphone",...},{"name":"huaweiP10",...},{"name":"xiaomi8",...},...]);

集合中删除数据:db.集合名.remove({});删除所有数据,保留空的集合

                db.集合名.remove({删除条件});删除满足条件的所有数据
集合中修改数据:db.集合名.update({条件},{更新内容});
                db.t_product.update({"name":"iphone"},{"name":"ipad"});先将符合条件的全部删除,然后重新添加新的内容
                db.t_product.update({"name":"iphone"},{$set:{"name":"ipad"}});保留原来的数据修改,但只是修改符合条件的第一条数据
                db.t_product.update({"name":"iphone"},{$set:{"name":"ipad"}},{multi:true});保留原来的数据修改,修改符合条件的所有数据
                db.t_product.update({"name":"iphone"},{$set:{"name":"ipad"}},{mulit:true,upsert:true});保留原来的数据修改,修改符合条件的所有数据,没有条件符合的时候插入数据
                db.t_product.update({"name":"iphone"},{$inc:{"num":1}},{multi:true,upsert:true});在保留原始数据同时给符合条件的所有num这列的值自增指定的大小
集合中查询数据:
    普通查询:db.t_product.find();

              db.t_product.find({条件});

              db.t_product.find({条件},{显示字段①:1,显示字段②:0});    
              1:该字段显示,0:该字段不显示,1和0不能同时出现
    排序查询:db.t_product.find().sort({排序条件①:1,排序条件②:-1});
              1:升序,-1:降序,两个条件时,在条件①相同的情况下根据条件②排序
    分页查询:db.t_product.find().sort({排序条件}).skip(起始条数).limit(偏移量/pageSize);
              类似于mysql的分页查询
    总数查询:db.t_product.count();
              db.t_product.find({条件}).count();
    模糊查询:db.t_product.find({"name":/xiaohei/});
              /xiaohei/为正则表达式,类似于?xiaohie?
    等值查询:db.t_product.find({"name":"xiaohei"});
              db.t_product.find({name:{$seq:"xiaohei"}});
    且查询:  db.t_product.find({"name":"xiaohei","age":23});
              db.t_product.find({$and:[{"name":"xiaohei"},{"age":23}]});
    或查询:  db.t_product.find({$or:[{"name":"xiaohei"},{"name":"xiaozhang"}]});
    比较查询:db.t_product.find({"age":{"$gte":23,"$lte":30}});查询年龄在[23,30]闭区间的数据
              > $gt        < $lt        >= $gte        <= $lte
    $nor查询:db.t_product.find({$nor:[{"name":"xiaohei"},{"name","xiaozhang"},...]});查询xiaohei和xiaozhang之外的所有人
              []中可以写单个数据也可以写多个数据,表示既不也不的意思

查询中可以多条件合并查询,具体就不一一列出示例,具体问题具体分析,注意花括号的内外嵌套,不要迷乱。

修改库名和集合名暂未掌握!!!
              

猜你喜欢

转载自blog.csdn.net/wazk2008/article/details/81086302