MongoDB使用经验总结

摘要:

  最近在开发项目使用了数据库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"

如果控制台看到类似的信息就说明安装成功了

注意:关闭该窗口就关闭了mongodb的服务,如果你想关闭服务可以使用Ctrl+c来关闭。

4、测试连接,重新打开一个命令窗口,进入到上面的目录下,然后输入mongo或者mongo.exe当出现下面信息时说明测试通过,此时我们已经进入了mongo的默认数据库test这个数据库。

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 <name> : 服务名称

–serviceDisplayName <display-name> : 服务列表显示名称

–serviceDescription  <description> : 服务描述

设置好之后只需要执行下面命令就可以启动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=<mongodb-install-directory>/bin:$PATH

4、创建数据仓库

mkdir -p /data/db

5、设置数据路径

mongod --dbpath <path to data directory>

注意:不要将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

输出结果为

命令:

  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

时间: 2024-10-07 05:51:09

MongoDB使用经验总结的相关文章

node.js使用经验记录

MongoDB使用经验: 有时不知道MongoDB的错误码代表什么,那有这个链接: https://github.com/mongodb/mongo/blob/master/src/mongo/base/error_codes.err 关于MongoDB连接字符串,有两个经验: 对于node.js驱动,如果要保证一个用户的数据写入到数据库是按调用的顺序来的,请在连接字符串里设置poolSize=1或maxPoolSize=1. w=majority会导致性能很差,用w=1吧. Node.js本身

MONGODB全面总结

关于Mongodb的全面总结,学习mongodb的人,可以从这里开始! 分类:            MongoDB2013-06-08 09:5610213人阅读评论(0)收藏举报 目录(?)[+] BSON 效率 传输性 性能 写入协议 数据文件 名字空间和盘区 内存映射存储引擎 其他 MongoDB的架构 MongoDB的特点 MongoDB的功能 MongoDB的局限性与不足 适用范围 MongoDB的不适用范围 要点 MongoDB分布式复制 MongoDB语法与现有关系型数据库SQL

MongoDB---前世今生

MongoDB的官方文档基本是how to do的介绍,而关于how it worked却少之又少,本人也刚买了<MongoDB TheDefinitive Guide>的影印版,还没来得及看,本文原作者将其书中一些关于MongoDB内部现实方面的一些知识介绍如下,值得一看. 今天下载了<MongoDB The Definitive Guide>电子版,浏览了里面的内容,还是挺丰富的.是官网文档实际应用方面的一个补充.和官方文档类似,介绍MongoDB的内部原理是少之又少,只有在附

Bugsnag的MongoDB分片集群使用经验

Bugsnag是一家为移动应用开发者提供实时的Bug追踪及检测服务的创业公司,Bugsnag已经使用MongoDB存储超过TB级的文档数据.从Bugsnag的第一个版本开始他们就使用MongoDB存储业务数据.近日,Bugsnag的工程师Simon Maynard在博客上分享了他们的MongoDB分片集群经验,并开源了几个他们常使用的脚本. 带标签的分片(Tag Aware Sharding) 带标签的分片是MongoDB 2.2版本中引入的新特性,此特性支持人为控制数据的分片方式,从而使数据存

MongoDB Replica Set使用经验分享

MongoDB Replica Set是MongoDB官方推荐的主从复制和高可用方案,用于替代原有的Master-Slave主从复制方案.Replicat Set具有自动切换功能,当Primary挂掉之后,可以自动由Replica Set中的某一个Secondary来切换到Primary,以实现高可用的目的,不像MySQL那样需要使用第三方软件. 目前很多游戏公司都开始使用MongoDB作为数据库,我们公司线上使用的版本是2.4.6. 一  MongoDB Replica Set的原理 复制主要

《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想

总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and AngularJS Web Development>,总的来说是一本讲述如何用Javascript进行B/S架构全栈开发的书. 该书主要讲解4种技术(框架),分为6个部分29个章节.4种技术即Node.js.MongoDB.Express.AngularJS,业内称为MEAN:6个部分我个人理解为: 基础(引言).

MongoDB数据库设计中6条重要的经验法则

Part 1 原文:6 Rules of Thumb for MongoDB Schema Design: Part 1 By William Zola, Lead Technical Support Engineer at MongoDB “我有丰富的sql使用经验,但是我是个MongoDB的初学者.我应该如何在MongoDB中针对一对多关系进行建模?”这是我被问及最多的问题之一. 我没法简单的给出答案,因为这有很多方案去实现.接下来我会教导你如何针对一对多进行建模. 这个话题有很多内容需要讨

mongoDB主从和副本集群配置

mongoDB主从和副本集群配置 Mongodb是时下流行的NoSql数据库(MongoDB是一个基于分布式文件存储的数据库),它的存储方式是文档式存储,并不是Key-Value形式.   优势: 快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系型数据库快5位左右.) 很高的可扩展性–轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了) 他有一个很好的 replication 模式 (replica sets) 有很完善的Java API 他的存储格

ubuntu安装mongodb

参考:http://blog.csdn.net/zhushh/article/details/52451441 1.导入软件源的公钥 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 2.为mongodb创建软件源list文件 ubuntu12.04 echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multi