• MongoDB之二基础入门(window/linux安装启动)


    mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。

    一window安装与启动

    一、 下载

          上MongoDB官网 ,下载页面:https://www.mongodb.com/download-center,我们发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意:

              ①:根据业界规则,偶数为“稳定版”(如:1.6.X,1.8.X),奇数为“开发版”(如:1.7.X,1.9.X),这两个版本的区别相信大家都知道吧。

              ②:32bit的mongodb最大只能存放2G的数据,64bit就没有限制。

         到MongoDB官网下载MongoDB软件:mongodb-win32-x86_64-2008plus-ssl-3.2.9-signed.msi,

    二、安装

    安装mongodb-win32-x86_64-2008plus-ssl-3.2.9-signed.msi,我解压到D:workspacemongodb下

    选择安装组件

    安装成功

    三、启动

         ①:启动之前,我们要给mongodb指定一个文件夹,创建文件夹D:workspacemongodbdatadb、D:workspacemongodbdatalog,分别用来安装db和日志文件,在log文件夹下创建一个日志文件MongoDB.log,即d:mongodbdatalogMongoDB.log,准备好后,下面来启动mongodb吧。

                   

         ②:微软徽标+R,输入cmd,首先找到“mongodb”的路径,然后运行mongod开启命令,同时用--dbpath指定数据存放地点为“db”文件夹。

    cd D:workspacemongodbin

    D:workspacemongodbin>mongod -dbpath "D:workspacemongodbdatadb"

    打开shell客户端测试连接:

         开一个cmd窗口,进入mongodb的bin目录,输入mongo或者mongo.exe,出现如下信息说明测试通过,此时我们已经进入了test这个数据库。

    输入exit或者ctrl+C可退出。

    或者

    启动日志最后的端口 [initandlisten] waiting for connections on port 27017

    这是在浏览器输入http://localhost:27017/可以看到显示信息为

    It looks like you are trying to access MongoDB over HTTP on the native driver port.
    也说明成功启动mongodb。

    MongoDB服务的启动脚本:

    启动服务的脚本mongodb.bat内容为:

    mongod -dbpath "D:workspacemongodbdatadb"

    Shell客户端启动脚本,并以admin登录的脚本为client27017.bat

    mongo 127.0.0.1:27017/admin

    执行结果如下:

    四、MongoDB安装为Windows服务

    =为什么要安装成windows服务===========================================

    当mongod.exe被关闭时,mongo.exe 就无法连接到数据库了,因此每次想使用mongodb数据库都要开启mongod.exe程序,所以比较麻烦,此时我们可以将MongoDB安装为windows服务
     还是运行cmd,进入bin文件夹,执行下列命令
     > d:mongodbin>mongod --dbpath "d:mongodbdatadb" --logpath "d:mongodbdatalogMongoDB.log" --install --serviceName "MongoDB"

     这里MongoDB.log就是开始建立的日志文件,--serviceName "MongoDB" 服务名为MongoDB

     接着启动mongodb服务

     > d:mongodbin>NET START MongoDB

    Windows下面安装和使用mongodb

    关闭服务和删除进程

     > d:mongodbin>NET stop MongoDB (关闭服务)

     > d:mongodbin>mongod --dbpath "d:mongodbdatadb" --logpath "d:mongodbdatalogMongoDB.log" --remove --serviceName "MongoDB" (删除,注意不是--install了)

    =为什么要安装成windows服务===========================================

    将mongodb安装为windows服务非常简单只需要在上面执行的命令行后添加 --install即可

    mongod --dbpath D:MongoDBdata --install

    按照正常的剧情,应该服务就安装成功了,但是很不幸,出现下面提示

    --install has to be used with --logpath

    按照提示,我们需要指定log目录,所以我们创建log目录D:MongoDBlogs 然后重新执行命令

    mongod --dbpath D:MongoDBdata --logpath=D:MongoDBlogsmongodb.log --logappend

    但是提示还是没有指定日志路径,几经折腾发现这是2.6版本的一个bug,将会在下一个版本修复,然后我们有两个选择,一个选择是使用上一个版本2.4.9,另一个选择是先用2.4.9版本安装成功服务,然后在升级到2.6(肿么升级?直接用2.6版本替换掉对应2.4.9版本的文件),那我们还有其他的选择吗,答案当然是肯定的,使用sc命令创建服务,使用net start启动服务

    sc create MongoDB binPath= "D:MongoDBinmongod.exe --service --dbpath D:MongoDBdata --logpath=D:MongoDBlogsmongodb.log  --logappend"
    net start MongoDB

    五、MongoDB配置文件

    很遗憾,官方下载的安装包里面没有默认的配置文件,若想使用配置文件只能自己建一个了,另外个人也推荐使用配置文件来管理MongoDB的配置,使用配置文件配置数据库文件、日志文件以及其它的一些配置都一目了然

    解压安装包到D:MongoDB

    建立数据库目录 D:MongoDBdata

    建立日志目录 D:MongoDBlogs

    建立配置文件目录 D:MongoDBetc

    建立配置文件 D:MongoDBetcmongodb.conf

    复制代码
    dbpath=D:MongoDBdata #数据库路径
    logpath=D:MongoDBlogsmongodb.log #日志输出文件路径
    logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
    journal=true #启用日志文件,默认启用
    quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
    port=27017 #端口号 默认为27017
    复制代码

    这里仅指定了几个常用项,更多详细配置请参考官方文档 http://docs.mongodb.org/manual/reference/configuration-options/

    注:以上目录是博主自己建立的目录,官方并没有对配置文件路径做出规范,全凭个人喜好来决定

    配置文件和相关目录建好后使用如下方式启动MongoDB

    • 普通启动
      mongod --config D:MongoDBetcmongodb.conf
    • 安装为Windows服务
      注:2.6版 这种方式在win7、win8 64位版无法安装成功,其他系统未测试
      mongod --config D:MongoDBetcmongodb.conf --install
    • 使用SC安装为Windows服务
      sc create MongoDB binPath= "D:MongoDBinmongod.exe --service --config=D:MongoDBetcmongodb.conf"

    这里需要注意下当指定了日志文件后,无论使用配置文件指定还是在命令行指定,日志就都会输出到指定的日志文件去了,在命令行界面将看不到任何日志输出

    二、linux安装与启动 

    1、下载

    在官网上https://www.mongodb.com/download-center#community

    二、解压安装

    下载得到https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.2.tgz文件,解压到/home/sfapp/dev/mongodb/mongodb-3.4.2目录,

    建立目录如下目录,

    存储目录:/home/sfapp/dev/mongodb/mongodb-3.4.2/mongo_data

    日志目录:/home/sfapp/dev/mongodb/mongodb-3.4.2/logs

    启动:

    [sfapp@cmos1 bin]$ ./mongod --dbpath=/home/sfapp/dev/mongodb/mongodb-3.4.2/mongo_data  --port=27017  --fork 
    --logpath=/home/sfapp/dev/mongodb/mongodb-3.4.2/logs/mongodb.log
    --auth --httpinterface --rest
    --auth:开启认证
    --httpinterface
    :启动web控制台服务
    --rest:默认会开启一个HTTP协议的端口提供REST的服务

    三、测试

    访问:http://10.202.11.117:27017/出现如下界面:

    访问:http://10.202.11.117:28017/ 出现如下界面:

     去掉auth,如下:

    bin]$ ./mongod --dbpath=/home/sfapp/dev/mongodb/mongodb-3.4.2/mongo_data --port=27017 --fork --logpath=/home/sfapp/dev/mongodb/mongodb-3.4.2/logs/mongodb.log --httpinterface

    再访问页面:http://10.202.11.117:28017/

     

    
    

    三:基本操作

         由于是开篇,就大概的说下基本的操作,

    1、创建一个数据库
    use [databaseName]
    但是你什么也不干就离开的话这个空数据库就会被删除
    2、查看所有数据库
    show dbs
    3、给指定数据库添加集合并且添加记录
    db.[databaseName].insert({...})
    4、查看数据库的所有文档
    show collections
    5、查询指定文档的数据
    查询所有db.[documentName].find()
    查询第一天数据db.[documentName].findOne()
    6、更新文档数据
    db.[documentName].update({查询条件},{更新内容})
    7、删除文档中的数据
    db.[docmentName].remove({...})
    8、删除库中的集合
    db.[docmentName].drop()
    9、删除数据库
    db.dropDatabase()
    10、Shell的help
    里面有所有的shell可以完成的命令帮助
    全局的help数据库相关的db.help()集合相关的db.[databaseName].help()
    11、mongoDB的API
    http://api.mongodb.org/js/2.1.2/index.html
    12、数据库和集合命名规范
    A、不能有空字符串
    B、不得含有'' (空格)、,$、/、、和o空字符;
    C、应全部小写;
    D、最多64个字节;
    E、数据库名不能与现有系统保留库同名,如admin,local及config
    13、这样的集合名字也是合法的
    db-text但是不能通过db.[docmentName]得到了
    要改为db.getCollection(documentName)
    因为db-text会被当成减法操作

    测试代码如下:

    D:workspacemongodbin>client27017.bat
    
    D:workspacemongodbin>mongo 127.0.0.1:27017/admin
    MongoDB shell version: 3.2.9
    connecting to: 127.0.0.1:27017/admin
    > use tong
    switched to db tong
    > show dbs
    local  0.000GB
    test   0.000GB
    > use tong
    switched to db tong
    > db.Person.insert({"name":"java","age":"22"})
    WriteResult({ "nInserted" : 1 })
    > db.Person.insert({"name":"python","age":"22"})
    WriteResult({ "nInserted" : 1 })
    > show dbs
    local  0.000GB
    test   0.000GB
    tong   0.000GB
    > show collections
    Person
    > db.Persion.find()
    > db.Person.find()
    { "_id" : ObjectId("57e650953b57f5055d313b30"), "name" : "java", "age" : "22" }
    { "_id" : ObjectId("57e650973b57f5055d313b31"), "name" : "python", "age" : "22" }
    > db.Person.find({"name":"java"})
    { "_id" : ObjectId("57e650953b57f5055d313b30"), "name" : "java", "age" : "22" }
    > db.test.insert({name:"mongo"})
    WriteResult({ "nInserted" : 1 })
    > db.test.find()
    { "_id" : ObjectId("57e65f5c3b57f5055d313b32"), "name" : "mongo" }
    > db.test.drop()
    true
    > db.test.find()
    > db.test.dropDatabase()
    2016-09-24T19:12:02.421+0800 E QUERY    [thread1] TypeError: db.test.dropDatabase is not a function :
    @(shell):1:1
    
    >

    <1> insert 操作

    好,数据库有了,下一步就是集合,这里就取集合名为“person”,要注意的就是文档是一个json的扩展(Bson)形式。

    db.Person.insert({"name":"java","age":"22"})
    db.Person.insert({"name":"python","age":"22"})

    <2> find 操作

    我们将数据插入后,肯定是要find出来,不然插了也白插,这里要注意两点:

    ① “_id": 这个字段是数据库默认给我们加的GUID,目的就是保证数据的唯一性。

    ② 严格的按照Bson的形式书写文档,不过也没关系,错误提示还是很强大的。

    示例:

    db.Person.find();

    db.Person.find({"name":"java"})

      

     <3> update操作

          update方法的第一个参数为“查找的条件”,第二个参数为“更新的值”,学过C#,相信还是很好理解的。

    示例:

    db.Person.update({"name":"java"},{"name":"java","age":"30"})

      

    <4> remove操作

          remove中如果不带参数将删除所有数据,呵呵,很危险的操作,在mongodb中是一个不可撤回的操作,三思而后行。

    示例:

    db.Person.remove({"name":"java"})

     db.Persion.count()

    四、客户端工具

    MongoVUE安装完成后,打开连接

    出现错误如下:

    不要用admin用户登录,换成默认的用户

  • 相关阅读:
    jQuery jsonp(转载)
    vue jsonp (转载)
    Win10系统 开机总是黑屏一分钟 然后才进入解锁界面?
    Win10怎么取消开机密码
    Qt启动报错“0xc0000005”错误?
    公司转让债务问题怎么处理
    从车载激光点云数据轨迹数据中提取坐高斯标数据
    macbook air和pro的ppi
    任务管理器是灰色的
    python列表删除某个元素
  • 原文地址:https://www.cnblogs.com/duanxz/p/4526738.html
Copyright © 2020-2023  润新知