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
MongoDB使用经验总结的更多相关文章
- MongoDB 使用经验笔记
bin下的mongod就是MongoDB的服务端进程,mongo就是其客户端,其它的命令用于MongoDB的其它用途如MongoDB文件导出等 启动方式: 1.直接启动,指定各项参数: /usr/lo ...
- MongoDB资料汇总
MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: 面向集合存 ...
- node.js使用经验记录
MongoDB使用经验: 有时不知道MongoDB的错误码代表什么,那有这个链接: https://github.com/mongodb/mongo/blob/master/src/mongo/bas ...
- 关于Mongodb的全面总结
MongoDB的内部构造<MongoDB The Definitive Guide> MongoDB的官方文档基本是how to do的介绍,而关于how it worked却少之又少,本 ...
- MongoDB 2.6.2 发布
NoSQL数据库MongoDB推出了全新一代产品MongoDB 2.6.2,该版本全面强化核心服务器,提供全新的自动化工具与重要的企业功能,宣称是MongoDB问世5年来最大的一次版本发布,主要改善开 ...
- [你必须知道的NOSQL系列]专题一:MongoDB快速入门
一.前言 现在越来越多的公司开始采用非关系数据库了,并且很多公司的面试都要求面试者有MongoDB的使用经验,至于非关系数据库与关系型数据库之间的区别大家可以自行百度.但是作为程序员的我们,既然大部分 ...
- 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想
总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and Angula ...
- Mongodb使用总结
学习Mongodb已经有半年多了,为啥学习它,工作需要啊.好了,废话不说,总结在实际项目应用中的几点问题. 学习总结 首先,mongodb基本上既照顾到了sql某些语法,又有nosql的许多优点.入门 ...
- MongoDB update数据语法【转】
在前面的文章“mongodb 查询的语法”里,我介绍了Mongodb的常用查询语法,Mongodb的update操作也有点复杂,我结合自己的使用经验,在这里介绍一下,给用mongodb的朋友看看,也方 ...
随机推荐
- Python MQTT订阅获取发布信息字典过滤
起因是因为 订阅的时候,获取到的 MQTT 信息时,第一条信息好像是连接信息,所以需要过滤他. 接收到的数据如下 必须要过滤这个 name : 1 的字典,操作如下: def on_message(c ...
- [开发笔记]-初学WPF之自学笔记
一:动态加载背景图片 代码: 在窗体加载时,Window_Loaded 方法中: #region 测试动态加载背景图片 /* 1.图片右键 属性: 复制到输出目录:选择“如果较新则复制” 生成操作选择 ...
- linux比较两个文件是否一样(linux命令md5sum使用方法)
1.简介 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一 ...
- Drupal 7 配置ckeditor和ckfinder编辑器实现图片上传--不用wysisyg
注意: 1.这里的ckeditor编辑器是独立模块,不是那个wysiwyg模块. 2.这里的图片上传仅仅为文章内图片,非字段图片. 1.下载文件(1) http://drupal.org/proj ...
- Hbuilder开发app实战-识岁03-文件上传
前言 做app不得不谈的问题就是文件上传.用hbuilder开发app让上传变的非常easy. Uploader Uploader模块管理网络上传任务,用于从本地上传各种文件到server,并支持跨域 ...
- Scrapy 导出的 cvs 文件,双击打开乱码问题
默认可能是utf8格式,在excel的不要直接打开,而是在excel - 数据 -导入里打开,或者打开前用vscode之类的保存为GBK编码
- JDBC SQL语法
结构化查询语言(SQL)是一种标准化语言,允许对数据库执行操作,例如:创建数据记录,读取内容,更新内容和删除数据记录等. 本教程中将概述SQL,这是了解和学习JDBC概念的前提条件. 经过本章后,您将 ...
- e798. 显示JSlider的标记标签
This example demonstrates how to display labels (numerical values) at the major ticks (see e797 显示JS ...
- Swing 是一个为Java设计的GUI工具包
Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...
- SpringMVC自定义视图Excel视图和PDF视图
SpringMVC自定义视图 Excel视图和PDF视图 SpringMVC杂记(十一) 使用Excel视图 Spring MVC 视图解析器(ViewResolver ) java实现导出excel ...