Mongodb安装与使用

简介:

MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

特点:

1高性能

2易部署

3易使用

4存储数据非常方便

安装

下载

: http://www.mongodb.com/download-center?jmp=nav#community

创建数据目录 d:\data\db\

启动

1:在 mongodb 安装目录的 bin 目录下运行 cmd 执行

2:mongod –-dbpath d:\data\db  (启动服务)

3:重新在当前目录下 再次打开一个 cmd 执行 mongo 命令 进入到 mongo 交互界面

【**** 将安装目录的 bin 目录追到的系统path变量里面,之后,任一位置打开cmd都能执行上面步骤了

**** 将mongodb服务写入到系统服务里面,设置自动启动,下次就不需要额外开启服务了。操作如下:

1. 在 d:\data\ 目录下新建一个 logs 文件夹

2. 用管理员权限打开cmd 运行如下命令

mongod –-dbpath d:\data\db --logpath=d:\data\logs\mongodb.log --install】

操作使用

1:初步了解数据库、集合、文档概念

数据库:即存放集合的位置    一个MongoDB中可以建立多个数据库

集合:就是 MongoDB 中的文档组,相当于关系型数据库中的表格

文档:文档就是一个 键值对 对象。一个集合里面可以有多个文档。文档与文档之间不需要设置相同的字段,并且相同的字段也不需要相同的数据类型。这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

2:常用命令

①Help查看帮助命令 

    help        db.help()           db.test.help()                    db.test.find().help()

②创建|切换数据库      

     use 数据库名(例:use project; 若无该project数据库名,则会帮你自动添加并使用)

③列出所有数据库

     show dbs;

④查看当前所处数据库

     db || db.getName()

⑤显示当前db的状态

     db.stats()

⑥查看当前DB的链接机器地址

     db.getMongo()

⑦删除数据库

     db.dropDatabase();

3:MongoDB – Collection 集合操作

 ①创建集合

      db.createCollection(“名字”, {“size”: 20, “capped”: true});

      db.createCollection(“名字”);

      db.”名字”.insertOne({“name”: “bbb”, “age”: 18});

②得到指定名称的集合

      db.getCollection(“account”);

③得到当前db的所有集合

      db.getCollectionNames();

④显示当前db所有集合的状态

      db.printCollectionStats();

⑤删除某个集合

      db.xxx.drop();

4:MongoDB – 增删改 集合数据(重要)

①增加数据

     db.users.save({“name”: “张三”,“age”: 19});

     db.users.insertOne({“name”: “张三”, “age”: 18});

     db.users.insert([{“name”: “zhangsan”}, {“name”: “lisi”}]);

②修改

     db.users.update({“age”: 25}, {$set: {“name”: “zhangsan”}});

     db.users.update({“name”: “lisi”}, {$inc: {“age”: 25}});

     db.users.update({“name”: “lisi”}, {$inc: {“age”: 5},$set: {“name”: “zhangsan”}})

③删除

     db.users.remove({“age”: 25});

④查询

   1、查询所有记录

        db.userInfo.find();

        相当于:select* from userInfo;

    2、查询去重后数据

        db.userInfo.distinct("name");

        相当于:select distict name from userInfo;

    3、查询age = 22的记录

         db.userInfo.find({"age": 22});

         相当于: select * from userInfo where age = 22;

    4、查询age > 22的记录

         db.userInfo.find({age: {$gt: 22}});

         相当于:select * from userInfo where age >22;

     5、查询age < 22的记录

          db.userInfo.find({age: {$lt: 22}});

          相当于:select * from userInfo where age <22;

     6、查询age >= 25的记录

           db.userInfo.find({age: {$gte: 25}});

           相当于:select * from userInfo where age >= 25;

     7、查询age <= 25的记录

            db.userInfo.find({age: {$lte: 25}});

     8、查询age >= 23 并且 age <= 26

            db.userInfo.find({age: {$gte: 23, $lte: 26}});

      9、查询name中包含 mongo的数据

             db.userInfo.find({name: /mongo/});

             //相当于%%

             select * from userInfo where name like ‘%mongo%’;

     10、查询name中以mongo开头的

           db.userInfo.find({name: /^mongo/});

           select * from userInfo where name like ‘mongo%’;

      11、查询指定列name、age数据

           db.userInfo.find({}, {name: 1, age: 1});

           相当于:select name, age from userInfo;

      12、查询指定列name、age数据, age > 25

            db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});

            相当于:select name, age from userInfo where age >25;

       13、按照年龄排序

             升序:db.userInfo.find().sort({age: 1});

             降序:db.userInfo.find().sort({age: -1});

        14、查询name = zhangsan, age = 22的数据

            db.userInfo.find({name: 'zhangsan', age: 22});

            相当于:select * from userInfo where name = ‘zhangsan' and age = ’22';

         15、查询前5条数据

           db.userInfo.find().limit(5);

           相当于:select top 5 * from userInfo;

如果这篇文章确实对你有所帮助,欢迎大家点赞,鼓励我继续写下去有什么不懂的可以问我

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容