zoukankan      html  css  js  c++  java
  • mongoDB非关系型数据库

      一句话解释:MongoDB是一个基于分布式文件存储的数据库。 由C++编写。旨在为web程序提供可扩展性高的高性能的数据存储解决方案

    非关系数据库和关系型数据库的区别是什么?

    • 实质:非关系型数据库的实质:非关系型数据库产品是传统关系型数据库的功能阉割版,通过减少用不到或很少用的功能,来大幅度提高产品性能。
    • 价格:目前的非关系型数据库基本都是免费的,而比较有名气的关系型数据库都是收费的,比如:Oracle、DB2、MSSQL。MySql虽然是免费的,但是处理大型数据还是要提前作很多工作的。
    • 功能:实际开发中,很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。

    概念性的区别如下表所示:

        了解关系型数据库和非关系型数据库的区别后,需要有一点的取舍,比较复杂和大型的项目不建议使用非关系型数据库,但是如果你想作个博客,CMS系统这类业务逻辑不复杂的程序,MongoDB是完全可以胜任的。

    mongoDB的操作语句:

      

    查看数据库列表 $ Show dbs   检查数据库
     
    创建数据库    $ use 数据库名称
     
    创建集合     $ db.createCollection(“集合名”)   // 集合 === 表
                >{ok:1}
     
    查看集合(一定先进入对应数据库再进行查看)
                $ db.getCollectionNames()
                >[‘集合名']
     
    插入数据     $ db.集合名.insertOne(数据集合({}json形式的数据)) // 文档 === 列
                >{
                    "acknowledged" : true,   //是否插入成功
                    "insertedId" : ObjectId("5aab2aaa93468a71aec836ce”)//插入的id
                 }
    查看数据    $ db.music.find() 查看数据库中的数据
               > 
                { "_id" : ObjectId("5aab2aaa93468a71aec836ce"), "title" : "回娘家" }
                { "_id" : ObjectId("5aab2b5e93468a71aec836cf"), "title" : "再见理想" }
     
    Help命令 
     
    db.help()   //db下的指令
     
    db.test.help(); // db.test 下的所有指令
     
    db.test.find().help(); //db.test.find下的所有指令
     
    ………强大的help指令
     
    使用数据库
     
    use  数据库名
     
    查询数据陆
     
    show dbs
     
    查看当前使用的数据库
     
    db/db.getName();
     
    显示当前的数据库状态
     
    db.stats();
     
    查看当前db的版本
     
    db.version();
     
    查看数据库连接地址;
     
    db.getMongo()
     
    删除数据库
     
    db.dropDatabase() 
     
    tip:删除当前使用的数据库。
     
    集合(collection)操作
     
    1.创建
     
    createCollection(“collName”,{size:20,cappeu:true,max:10})
     
    2.得到指定名称的集合 
     
    db.getCollection(“account”)
     
    3.得到当前db所有的集合;
     
    db.getCollectionNames()
     
    4.显示当前db所有集合状态
     
    db.printCollectionStats();
     
    5.删除集合
     
    db.COLLECTION_NAME.drop();
     
    集合数据操作(添加,修改,删除)update | updateMany()
     
    1.添加 insert([,…]|{key:value,...})
     
    db.users.save({name:”zhangsan”,”age”:25,sex:true})
     
    2.修改 updata(条件({}))
     
    db.users.update({age:25},{$set:{name:”changeName”}},false,true)
     
    相当于sql语句的  update users set name = “changeName” where age = 25;
     
    db.users.update({name:”Lisi”},{$inc:{age:50}},false,true)
     
    相当于sql语句的  update users set age = age + 50 where name =“lisi”
     
    db.users.update({name:”Lisi”},{$inc:{age:50},$set:{name:’hoho’}},false,true)
     
    相当于sql语句的 : update users set age = age + 50 ,name = ‘hoho’ where name = “lisi"
     
    3.删除
     
    db.users.remove({age:132})
     
    db.users.delete()
    db.users.deleteOne()
    db.users.deleteMany()
     
     
     
    豆瓣数据的操作:
     
        获取到豆瓣的数据,然后将数据放入数据库之中。 
     
        查找对应数据;
     
    db.movie.find(条件,显示内容)
     
    db.movie.find({year:1994},{title:1,year:1,_id:0})//表示显示 title1 和 year1 _id不显示;
     
    1.表示显示  0.表示不显示;
     
     
    排序
     
    根据评分排序:
     
    db.movie.find({},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1})
     
    条件判断:$gt 大于; $lt 小于; $gte 大于等于 $lte 小于等于;
     
    db.movie.find({‘arting.average’:$gt:9.5},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1})
     
    分类筛选:
     
    $in 包含  $nin 不包含
     
    db.movie.find({genres:{$in:["犯罪","剧情"]}},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1})
     
     

      

  • 相关阅读:
    java 二维码图片生成工具类
    我的PHP学习过程
    js简单表格操作
    在同一个textarea文本框中设置不同的字体
    基础入门--创建项目
    异常处理方式
    2019年度的瞎几把总结
    WebAPI 返回值
    关于背景色
    使用echarts进行画图
  • 原文地址:https://www.cnblogs.com/fengch/p/8635591.html
Copyright © 2011-2022 走看看