MongoDB笔记:windows环境安装及连接本地数据库

下载MongoDB 2.4.9版

mongodb官网下载:http://www.mongodb.org/downloads

直接下载地址:http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.9.zip

3.6高版本下载地址:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.6.17.zip

安装步骤:

1、将下载的mongodb压缩包解压到对应文件夹,我的是:D:\SoftInstall\mongodb,请注意,我的bin目录是:D:\SoftInstall\mongodb\bin,注意自己的bin目录是否和我的相同

2、配置(请用管理员权限打开cmd,并切换到mongodb安装的文件夹,如:cd /d D:\SoftInstall\mongodb\bin):

1)创建一个目录用于保存MongoDB的日志文件:md D:\SoftInstall\mongodb\log,然后增加配置:echo logpath=D:\SoftInstall\mongodb\log\mongo.log > D:\SoftInstall\mongodb\mongod.cfg

2)创建数据库和日志文件的目录:md D:\softInstall\mongodb\data\db,然后增加配置:mongod --config D:\SoftInstall\mongodb\mongod.cfg --dbpath D:\SoftInstall\mongodb\data\db\ --install

3、安装和运行mongodb:

1)安装mongodb服务:mongod.exe --config D:\SoftInstall\mongodb\mongod.cfg --install

2)运行mongodb:net start mongodb(停止命令为:net stop mongodb)

3)连接到mongodb:mongo

4)创建用户:切换到admin:use admin,创建用户:db.addUser("admin","admin"); 查看用户:db.system.users.find();(注意:mongodb的语句后要加 ; 号)

5)查看数据库:show dbs

至此,mongodb安装完成,可以在可视化工具如MongoBooster中通过localhost连接到本地数据库

PS:

1、安装过程中可能出现的错误:

  1)net start mongodb出错:服务无法启动,发生系统错误1067。请打开配置文件D:\SoftInstall\mongodb\mongod.cfg,看下是否加上配置:dbpath=D:\SoftInstall\mongodb\data\db\,没有,请手动加上。

  2)通过工具连接,MongoError:auth fails错误:请在对应的集合加上用户,安装步骤3已经给出了切换数据库和创建用户的命令。

  3)出现类似:Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js的错误,在bin目录下运行:mongod.exe -logpath D:\mongo_log\mongodb.log -logappend -dbpath D:\mongo_data -directoryperdb -serviceName MongoDB -remove,然后再按照安装步骤,重新安装MongoDB

2、MongoDB查询语句:

  1)db.collection.drop();  // 删除集合

  2)db.messageDetail.find({});  // 查询集合

  3)db.messageDetail.find({"status":4});  // 根据字段查询

  4)db.messageDetail.find({"status":{ $ne : 4 }});  // "$lt", "$lte", "$gt", "$gte", "$ne"对应于"<", "<=", ">", ">=","!="

  5)db.messageDetail.find({"createTime" : {$lte:new Date(2017,10,26)}});  // 时间查询

  6)db.messageDetail.find({"$where":function () { if(this.count > 0) return true;}});  // 函数查询

  7)db.messageLogs.find({}).sort({"createTime":-1});  // 查询结果排序

  8)db.messageDetail.insert({_id:"terast",type:"type1",system:"test"});  // 插入

  9)db.messageDetail.find({"createdDate":{"$lte":new Date(Date.now() - 180000)}});  // 查询小于或等于当前时间三分钟之前的数据

  10)db.messageDetail.aggregate([{ $match: { status: 3 } },{ $group: { _id: "$projectId","time": {$last: "$updatedDate"}, lastVersionManager:{"$last": "$versionManager" } } }]);  // 分组查询

  11)db.messageDetail.aggregate([{"$group" : {_id:{source:"$source",status:"$status"}, count:{$sum:1}}}])  // 多个字段分组查询,计算每个分组数

  12)db.dictateLoggerPO.aggregate([{"$group" : {_id:"$projectId"}}]).forEach(function(item){

      var count = db.dictateLoggerPO.find({projectId:item._id, "createdDate" : {"$gte":new Date(Date.now() - 2592000000)}}).count();
      if(count > 50){
        console.log("领域:" + item._id + "最近一个月的通过管控指令发布次数为:" + count);
        var deleteCount = db.dictateLoggerPO.find({projectId:item._id, "createdDate" : {"$lte":new Date(Date.now() - 2592000000)}}).count();
        db.dictateLoggerPO.deleteMany({projectId:item._id, "createdDate" : {"$lte":new Date(Date.now() - 2592000000)}});
        console.log("领域:" + item._id + "删除一个月以前的数据总数为:" + deleteCount)
      }
    });  // 分组聚合后,遍历,根据条件删除数据

  13)db.pizzaConfigPO.find({_id:/tps/})  //模糊查询 

posted @ 2017-12-05 14:19  wuzhiyuan  阅读(1521)  评论(0编辑  收藏  举报