MongoDB的单机安装和CRUD操作

一、MongoDB单机安装

    需要提前下载mongo的tar包或者zip包。

1、wondows

     不做解释,启动的时候需要配置数据库的存放地址和日志地址,同下。

2、linux(Centos7)

    cd /data/mongo             # mongo安装的根目录

    mkdir data                     # 创建mongo的data目录(存放目录)

    mkdir logs                     # 创建mongo的日志存放目录

    cd logs   

    touch logs                   # 创建mongo的日志地址,否则可能启不来,但是mongo启动的时候,自己却用了一个带日期的log文件

    # 回到主目录,下载mongo二进制安装包

    wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-amazon2-3.7.5.tgz 

    tar -zxvf mongodb-linux-x86_64-amazon2-3.7.5.tgz      # 解压tar包

    mv mongodb-linux-x86_64-amazon2-3.7.5 mongodb    # 重命名解压的文件

创建快捷的启动方式:

1)、将启动参数放在启动脚本中进行启动

    vim start-mongod.sh                                                       # 在mongo根目录中,创建mongod启动脚本,内容为:

    /data/mongo/mongodb/bin/mongod -port 27017 --dbpath /data/mongo/data --logpath /data/mongo/logs/logs

2)、使用配置文件的方式

    cd /data/mongo/mongodb/bin 

    vim mongo.conf     # 在其中配置启动信息

port=27017                                     # 启动端口
dbpath=/data/mongo/data                        # 数据目录
logpath=/data/mongo/logs/logs.log              # 日志目录
logappend=true                                 # 日志追加,而不是覆盖

  启动:  ./mongod -f mongo.conf  [ -- rest ]            # 启动时开启rest API  (3.2版本之后取消掉了该功能)

 

二、MongoDB的CRUD操作

1、创建

     在插入文档之前会检查文档中是否存在_id(MongoDB的ObjectId类型),不存在则会进行默认添加,否则需要检查文档中传入的_id的合法性和唯一性。其他的更多检查需要应用程序本身进行维护。

    1)、单个插入(单个文档插入的限制是16M)

    db.test.insert({"name":"kevin", "age":NumberInt("18")});        # 在当前数据库的test集合中插入一个Document

    或者 user = {"name":"kevin", "age":NumberInt("18")} 再  db.test.insert(user);

    2)、批量插入(批量插入的限制是48M)

    db.test.batchInsert([{"name":"kevin-01", "age":NumberInt("18")},{"name":"kevin-02", "age":NumberInt("18")}]);

    批量插入的时候可能会在存在某一个文档报错的情况(比如_id检查唯一不通过),在应用程序的驱动中可以设置continueOnError属性,但是shell是不支持的。

2、删除

   db.test.remove({"name":"kevin-1"});    # 永久移除满足条件的文档,若没有条件,则会移除所有的文档

  db.test.user.remove({"name":"kevin'}); 与 db.test.remove({"user.name":"kevin"});  效果一致 

  db.test.drop();                                      # 不能有任何条件,将整个集合删除(1ms的时间内)

 

 

修改和查询是比较复杂的操作,后续将专门进行学习,下面是简单的修改:

3、更新

   db.test.update({"name":"kevin-1"} , {"name": "kevin"});   # 修改  前面条件为,后面为修改的属性和值

4、读取

    读取操作与其他数据库一样内容会比较,参见:Mongo的查询操作,下面是基本的查询:

   db.test.find();     # 查询test集合中的文档(默认20条),可以在括号内带一个js的查询条件,如   db.test.find({"name":"kevin"});

   db.test.findOne();   # 相当于满足条件的数据,然后limit 1

你可能感兴趣的:(MongoDB)