zoukankan      html  css  js  c++  java
  • 项目中使用mongodb的尝试

    1.下载。发现去官网下载不下来,最后直接百度搜索找到了一个3.0的较新的版本,是在MongoDB中文社区(http://www.mongoing.com/)找到的,目前他们还没有更新到官网的最新版本,不知道是不是也因为下载不下来。

    2.安装。安装不用多说了,很是简单。也不需要其他东西的支持。

    3.配置。mongodb安装后需要用命令行去操作,包括启动数据库,设置数据保存地址和日志保存地址等。另外需要将mongodb安装为windows服务才行,否则每次启动数据库需要打开一个cmd窗口,实在很麻烦。安装为windows服务这里让我纠结了一点时间,按照网上其他人说的命令去执行,发现服务虽然能装上,但是无法启动。后来又尝试了一个方法,终于可以了。现简略记录下来

    第一步,创建mongo的日志目录和配置文件  cmd->  md C:mongodblog    

                        cmd-> echo logpath=C:mongodblogmongo.log > C:mongodbmongod.cfg  这里的日志路径和cfg文件的路径自己决定

    第二歩,运行 如下命令:C:mongodbin>mongod.exe --config C:mongodbmongod.cfg --dbpath D:Mongodbdb --install  即安装服务和指定默认 的数据库目录

    第三步,启动服务: net start mongodb

    4.写代码访问数据库。操作数据库有两种方式,一种是官方驱动的还有一种方便使用linq的,我用的是第二种,下载地址是https://github.com/samus/mongodb-csharp,里面就直接有操作的例子了。

    5.可视化查询工具。如果想长期使用,用可视化的方式来查询数据库是很好的操作。可以使用的工具是Robomongo,直接下载安装就行了。安装之后就可以新建连接来连接数据库查看了。

    6.mongodb的远程访问。首先要解决的问题是服务器上的mongodb能够允许远程访问,需要添加账号并进行设置。刚开始我是参照这个http://www.bubuko.com/infodetail-1153759.html帖子里面的步骤来进行的:

    先使用非安全模式进行访问,创建管理账号。不过因为我使用的是3.0+的版本,所以要先修改下mongodb的认证信息才行。

    修改命令如下,进入shell:

    > use admin 
    switched to db admin 
    >  var schema = db.system.version.findOne({"_id" : "authSchema"}) 
    > schema.currentVersion = 3 
    3 
    > db.system.version.save(schema) 
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 

    在修改完成之后再创建用户。下面附带创建数据库用户的shell

    1 创建一个root用户:

    use admin
    db.createUser(
        {
          user: "root",
          pwd: "123456",
          roles: [ "root" ]
        }
    )

    2 创建admin用户

    use admin
    db.createUser(
      {
        user: "admin",
        pwd: "admin",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )

    3 创建具体数据库的用户(这里可能并不需要这么多权限,只不过我最后测试修改成这样后才可以访问的)

    use test
    db.createUser(
      {
        user: "test",
        pwd: "password",

    "roles" : [
    {
    "role" : "userAdmin",
    "db" : "test"}, 

    {
    "role" : "readWrite",
    "db" : "test"

    }
    ]

      }
    )

    最后都要认证一下

    db.auth("user", "pwd")

    返回1代表成功,0代表失败。

     

    执行后敲入命令 C:mongodbin>mongod.exe --config C:mongodbmongod.cfg --dbpath D:Mongodbdb --auth --install

    --auth表示启动安全模式

    然后再启动服务就行了

    远程连接到服务器的mongodb

      1.cd 到安装的目录

      2.执行mongo 192.168.0.1:27017/数据库名称 -u 用户名-p 密码

      服务器地址根据真实情况而定。

    最后要修改程序中访问mongodb的代码

      

     public MyMongoDb()
                : this("mongodb://test:123456@localhost/test", "test")
            {
            }

    记使用中遇到的问题:

      1.时区问题。今天在使用过程中发现我保存到mongodb的时间跟实际保存的不一致,差了8个小时,查了一下明白了是因为时区不一样,后来测试了一下数据读取出来后时间又是正确的了,所以这个问题可以不用去管了。看到有人说可以在实体属性上加上[MongoDB.Bson.Serialization.Attributes.BsonDateTimeOptions(Kind = DateTimeKind.Local)],我试着加了下MongoDB.Bson下并没有找到Serialization,不知道是因为少引用了程序集还是版本问题。大家也遇到这个问题的话可以尝试一下。

      2.要删除mongodb服务,可以使用指令sc delete mongodb

      3.开启远程访问一定要注意schema.currentVersion的值要修改为3,否则会验证不通过。需要注意创建的用户credentials的类型应该是MONGODB-CR,如果不是就在schema.currentVersion值为3的情况下重新创建用户,如果已经启动了需要验证再访问,这时要使用admin账号进行操作,创建用户时记得切换数据库。

      4.如果需要迁移到其他服务器,只要先把mongodb安装好,并且配置好配置文件和数据库文件夹的地址,再将原来的数据库文件直接拷贝过来覆盖即可,这样原来的用户信息和数据就都存在了,不需要重新创建用户。最后再将mongodb设置为安全模式的服务并自启动就可以了。

    参照网址:

    http://www.cnblogs.com/fish-li/archive/2011/06/26/2090800.html

    http://www.cnblogs.com/isdavid/p/3298675.html

    http://www.bubuko.com/infodetail-1153759.html

    http://www.bubuko.com/infodetail-1121667.html

  • 相关阅读:
    Java知识回顾 (8) 集合
    Java知识回顾 (7) 继承、多态与接口、封装
    使用LEANGOO泳道
    使用列表
    LEANGOO用户设置
    创建LEANGOO项目
    为看板添加成员
    创建看板卡片
    创建LEANGOO看板
    创建LEANGOO账号
  • 原文地址:https://www.cnblogs.com/aiwuziji/p/5320094.html
Copyright © 2011-2022 走看看