zoukankan      html  css  js  c++  java
  • Nosql之Mongodb 1 安装配置与基本操作

    mongodb是什么以及其优缺点这里就不介绍了,这几篇文章目的主要是通过实际操作来认识mongodb

    Mongodb安装以及初始化

    1 下载地址:http://www.mongodb.org/

    2 安装?需要么?超级简单,直接解压就ok啦!!!

    3 为了方便使用直接将安装目录下的bin文件夹设置到环境变量中去

    4 建立数据库文件存放目录,其实就是建立一个文件夹,比如新建文件夹d:\Mongdb

    5 建立一个mongodb的日志文件,比如新建一个文件d:\Mongdo\logs\mongodb.log

    6 我们可以将mongodb注册成一个windows服务,这样我们就可以使用net start和net stop来启动和关闭服务了,在windows的CMD下面输入

    mongod --dbpath=d:\Mongodb --logpath=d:\Mongodb\logs\mongodb.log

    7 启动mongodb服务

    net start mongodb

    搞定!!!

    牛刀小试

    我们创建一个叫UserInfo的数据库,并创建users集合(类似于RDBMS中的表),并插入两条记录(Mongodb中叫做document(文档))

    首先在cmd下面输入mongo,进入客户端命令行,它是一个js解释器,能够支持javascript语法,比如  for(var i=0; i<10; i++) db.users.save({name:”name”+i, age:i});  等等等

    1)       创建UserInfo数据库

    use UserInfo

    注:是如果不存在UserInfo这个数据库,它会自动的给我们创建,如果存在当然是直接切换到这个数据库咯,如下图:

    2)       创建两条记录user1和user2并插入到users集合中

    user1 = {name:”zhangsan”,  age:24};

    user2 = {name:”lisi”, age:23};

    db.users.save(user1);

    db.users.save(user2);

    ---------------------------------------------------------------------------------------------------------------------------

    也可以这么写

    db.users.save({name:”zhangsan”, age:24});

    db.users.save({name:”lisi”, age:23});

    ---------------------------------------------------------------------------------------------------------------------------

    注:这里同样我们不需要预先创建users这个集合,在第一次插入数据时会给我们自动创建

    3)       查询刚才我们插入到users集合中的数据

    db.users.find();

    说明:

    存储在mongdb上的每一个document都会有一个默认的主键_id(如果我们不显示的指定的话), 如上图。这个_id自动是每个文档所必须的,当然它的类型不一定要是上图的ObjectId,不过主键必须是唯一的。

    Mongodb的增删改

    新增记录

    文章开始已经介绍过了,这里有一点需要注意的就是

    db.insert()和db.save()的区别:

    -----------------------------------------------------------------------------------------------------------

    insert   永远都是插入一条新记录

    save    如果不存在此记录则插入,存在则更新

    -----------------------------------------------------------------------------------------------------------

    先插入一些数据用于测试

    db.users.save({name:"lucy", age:23, country:"canada", gender:0});

    db.users.save({name:"joe", age:32, country:"american", gender:1});

    db.users.save({name:"fanny", age:22, country:"china", gender:0});

    db.users.save({name:"royall", age:44, country:"africa", gender:1});

    db.users.save({name:"michael", age:25, country:"china", gender:1});

    db.users.save({name:"edgar", age:24, country:"china", gender:1});

    db.users.save({name:"apple", age:39, country:"brazil", gender:0});

    db.users.save({name:"bruce", age:51, country:"england", gender:1});

    db.users.save({name:"lee", age:12, country:"japan", gender:1});

    db.users.save({name:"cang", age:31, country:"japan", gender:0});

    db.users.save({name:"hebe", age:33, country:"china", gender:0});

    db.users.save({name:"pig", age:1, country:"pigHouse", gender:0});

    db.users.save({name:"kevin", age:48, country:"china", gender:1});

    修改记录

    用新的文档替换

    db.users.update({“name”:”cang”}, {“name”:”hello”, fav: {“favID”:100, “favName”:”football” } } )

    只修改某个值

    修改name为bruce的country为Australia,age为18

             db.users.update({“name”:"bruce"}, {$set:{“country”:"Australia", “age”:18}})

    删除键

             db.users.update({“name”:”bruce”}, {$unset:{“country”:1}})

    前面的update操作只会更新匹配到的第一条记录,关于update还有两个参数

    update(query, obj, upsert, multi)

    upsert指的是如果不存在则进行插入

    multi是指更新匹配到的所有文档

    删除记录

    删除users集合下所有记录

             db.users.remove()

    删除指定条件的记录

             db.users.remove({“name”:”apple”})

  • 相关阅读:
    【leetcode】1630. Arithmetic Subarrays
    【leetcode】1629. Slowest Key
    【leetcode】1624. Largest Substring Between Two Equal Characters
    【leetcode】1620. Coordinate With Maximum Network Quality
    【leetcode】1619. Mean of Array After Removing Some Elements
    【leetcode】1609. Even Odd Tree
    【leetcode】1608. Special Array With X Elements Greater Than or Equal X
    【leetcode】1603. Design Parking System
    【leetcode】1598. Crawler Log Folder
    Java基础加强总结(三)——代理(Proxy)Java实现Ip代理池
  • 原文地址:https://www.cnblogs.com/zhaoyang/p/2317505.html
Copyright © 2011-2022 走看看