设为首页 收藏本站
查看: 1403|回复: 0

[经验分享] MongoDB使用经验总结

[复制链接]

尚未签到

发表于 2015-7-8 04:22:02 | 显示全部楼层 |阅读模式
摘要:
  最近在开发项目使用了数据库MongoDB,我将它的使用方法整理下分享给大家。至于mongoDB有什么优点,大家可以到官网去看。

安装:
  首先我们需要到官网下载适合自己系统的mongodb。

windows:
  你可以在命令窗口中输入下面命令来查看自己的系统参数,选择对应的版本


wmic os get osarchitecture
  如果你下载的是zip文件,只需要按照下面的步骤来就可以安装了:
  1、将下载的文件解压缩到自己想要安装的目录,比如:D:\test\。将解压的文件夹名改成mongodb,在mongodb文件里面包含bin文件等。
  2、创建数据和日志仓库,新建文件夹D:\test\mongodb\data\db和D:\test\mongodb\data\log,在log文件夹下新建一个日志文件MongoDB.log。
  3、设置数据仓库路径并启动,MongoDB默认的数据仓库是\data\db,我们需要更改为自己设置的路径,在命令提示窗内输入

  >d:
  d:>cd D:\test\mongodb\bin
  D:\test\mongodb\bin>mongod --dbpath "D:\test\mongodb\data"

  如果控制台看到类似的信息就说明安装成功了
DSC0000.png
  注意:关闭该窗口就关闭了mongodb的服务,如果你想关闭服务可以使用Ctrl+c来关闭。
  4、测试连接,重新打开一个命令窗口,进入到上面的目录下,然后输入mongo或者mongo.exe当出现下面信息时说明测试通过,此时我们已经进入了mongo的默认数据库test这个数据库。
DSC0001.png
  5、上面提到关闭窗口mongo的服务就被关闭了,这样的话每次我们需要mongoDB服务时都要开启mongod.exe程序,比较麻烦。我们可以将mongo设置为windows的默认服务。
  在mongodb的bin目录下执行下面命令

  mongod --dbpath "D:\test\mongodb\data\db" --logpath "D:\test\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB"

  参数详解:
  –install : 安装
  –remove : 移除
  –serviceName  : 服务名称
  –serviceDisplayName  : 服务列表显示名称
  –serviceDescription   : 服务描述
  
  设置好之后只需要执行下面命令就可以启动mongoDB

  NET START MongoDB

  6、关闭和删除
  关闭:

net stop MongoDB
  删除:

sc.exe delete MongoDB

  如果你下载的是msi文件,只需要双击安装文件,一步一步安装就可以。最后你会在C:\Program Files目录下发现MongoDB 2.6 Standard文件。这个文件和我们下载的zip文件类似,我们只需要按照zip文件安装的方法安装即可。

MAC:
  如果你的系统是mac,有两种方法安装
  1、使用brew,只需要执行下面命令就可以安装mongoDB


brew install mongodb
或者
brew install mongodb --with-openssl
在或者
brew install mongodb --devel
  2、常规安装
  先down下来文件包


curl -O http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.6.6.tgz
解压
tar -zxvf mongodb-osx-x86_64-2.6.6.tgz
  然后将文件复制到安装目录


mkdir -p mongodb
cp -R -n mongodb-osx-x86_64-2.6.6/ mongodb
  3、将安装路径配置到rc file


export PATH=/bin:$PATH
  4、创建数据仓库


mkdir -p /data/db
  5、设置数据路径


mongod --dbpath
  注意:不要将mongod.exe文件在公共网内可见,因为MongoDB是在可信任的环境中执行的。

操作数据库:
  启动mongodb,创建数据库mongotest

  use mongotest;

  向mongotest的user表插入数据

  db.user.insert({
  name:'zhangsan',
  age:20
});

  我们在node环境下来操作数据库


mkdir myproject
cd myproject
  创建package.json文件如下



{
"name": "myproject",
"version": "1.0.0",
"description": "My first project",
"main": "index.js",
"repository": {
"type": "git",
"url": "git://github.com/christkv/myfirstproject.git"
},
"dependencies": {
"mongodb": "~2.0"
},
"author": "Christian Kvalheim",
"license": "Apache 2.0",
"bugs": {
"url": "https://github.com/christkv/myfirstproject/issues"
},
"homepage": "https://github.com/christkv/myfirstproject"
}
  执行npm install命令来安装mongoDB模块。新建文件mongotest.js,内容如下:



var mongodb = require('mongodb');
var server = new mongodb.Server("127.0.0.1",27017,{});//本地27017端口
new mongodb.Db('mongotest',server,{}).open(function(error,client){//数据库:mongotest
if(error) throw error;
var collection = new mongodb.Collection(client,'user');//表:user
collection.find(function(error,cursor){
cursor.each(function(error,doc){
if(doc){
console.log("name:"+doc.name+" age:"+doc.age);
}
});
});
});
  运行:

  node mongodbTest.js

  输出结果为
DSC0002.png

命令:
  1、基本

show dbs显示数据库列表
use db进入db数据库
show collections显示数据库中的集合
  2、增

db.table.save({"id":1})创建名为table的表,并新增一条数据
db.table.insert({"id":1})在table表中插入一条新数据,,如果没有table表,mongodb会自动创建
  3、改

db.users.update({"id":10},{"name": "zhangsan"})修改id=10的记录name=zhangsan,第一个参数是查找条件,第二个参数是修改内容,除了主键,其他内容会被第二个参数的内容替换,主键不能修改
  
  4、删

db.table.remove() 删除表table的所有数据,但是表还存在
db.table.remove({"id": 1})删除table表的id=1的记录
db.table.drop()删除表table
db.runCommand({"drop","table"})删除表table
db.runCommand({"dropDatabase": 1})删除当前数据库
  
  5、查

db.table.find()查找table表下的所有数据
  db.collection.find({ "key" : value })

查找key=value的数据
db.table.findOne()查找table表的第一条记录
db.collection.find({ "key" : { $gt: value } })查找key > value的数据
  6、排序

  db.collection.find().sort({ "key1" : -1 ,"key2" : 1 })

将查找的结果按照第一个字段降序,第二个字段升序排
  
  

附录:
  http://docs.mongodb.org/manual/
  https://github.com/mongodb/node-mongodb-native
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84165-1-1.html 上篇帖子: django操作mongodb(NOSQL) 下篇帖子: mongodb mongod 启动参数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表