MongoDB 环境搭建文档说明

1. 安装(ZIP安装)

Mongodb 下载中心

全版本下载中心

  • 选在下载ZIP文件

  • 将zip文件解压放到盘符的根目录(如C:或D:),为了方便建议文件夹命名尽量简短如(d:\mongodb)

  • 创建数据库文件的存放位置,比如 d:/mongodb/data/db 。启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。

  • d:\mongodb\data 下新建文件夹 log (存放日志文件)并且新建文件 mongodb.log ;在 d:\mongodb 新建文件mongo.config

  • 用记事本打开 mongo.config 输入:

    1
    2
    dbpath=D:\mongodb\data\db
    logpath=D:\mongodb\data\log\mongo.log
  • 用管理员身份打开cmd命令行,进入 D:\mongodb\bin 目录,输入如下的命令:

    1
    mongod --config D:\mongodb\mongo.config --install --bind_ip 0.0.0.0 --serviceName "MongoDB"

    PS: bind_ip 是4.0以后版本必须添加 0.0.0.0,这样远程才能访问该数据库,默认绑定 127.0.0.1,仅可本机访问

  • 在服务中启动MongonDB,默认端口是27017

2. 基本操作

增、删、查、改

增加

1
2
db.表名.insert({'字段名':'内容'});
db.表名.save({'字段名':'内容'});

PS:_id可以自已插入、一个表中不一定要字段都相同,虽然 insert 和 save 方法都可以插入数据,当默认的“_id”值已存在时,调用insert方法插入会报错;而save方法不会,会更新相同的_id所在行数据的信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
大于:$gt
小于:$lt
大于等于:$gte
小于等于:$lte
非等于:$ne
正则表达式

eg:
db.user.find({'age':{'$gt':18}});
db.user.find({'age':{'$lt':18}});
db.user.find({'age':{'$gte':18}});
db.user.find({'age':{'$lte':18}});
db.user.find({'age':{'$ne':18}});
db.user.find({'name':/燕/})

查询第一条

1
2
3
db.表名.findOne(条件);
eg:
db.user.findOne({'name':'Tom'})

分页查询

1
2
3
db.表名.find(条件).skip(跳过数量).limit(查找数量);
eg:
db.user.find().skip(0).limit(100);

批量操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Example of a simple bulkWrite operation

var MongoClient = require('mongodb').MongoClient,
test = require('assert');
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
// Get the collection
var col = db.collection('bulk_write');
col.bulkWrite([
{ insertOne: { document: { a: 1 } } }
, { updateOne: { filter: {a:2}, update: {$set: {a:2}}, upsert:true } }
, { updateMany: { filter: {a:2}, update: {$set: {a:2}}, upsert:true } }
, { deleteOne: { filter: {c:1} } }
, { deleteMany: { filter: {c:1} } }
, { replaceOne: { filter: {c:3}, replacement: {c:4}, upsert:true}}]
, {ordered:true, w:1}, function(err, r) {
test.equal(null, err);
test.equal(1, r.nInserted);
test.equal(2, r.nUpserted);
test.equal(0, r.nRemoved);

// Crud fields
test.equal(1, r.insertedCount);
test.equal(1, Object.keys(r.insertedIds).length);
test.equal(1, r.matchedCount);
test.ok(r.modifiedCount == 0 || r.modifiedCount == 1);
test.equal(0, r.deletedCount);
test.equal(2, r.upsertedCount);
test.equal(2, Object.keys(r.upsertedIds).length);

// Ordered bulk operation
db.close();
});
});

3. MongoDB导入导出以及数据库备份

    1. MongoDB数据导入与导出
    • 1)导出工具:mongoexport

      • 1、概念:

        mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

      • 2、语法:

        mongoexport -d dbname -c collectionname -o file --type json/csv -f field

        参数说明:
        -d :数据库名
        -c :collection名
        -o :输出的文件名
        –type : 输出的格式,默认为json
        -f :输出的字段,如果-type为csv,则需要加上-f “字段名”

      • 3、示例:

        sudo mongoexport -d mongotest -c users -o /home/python/Desktop/mongoDB/users.json --type json -f "_id,user_id,user_name,age,status"

    • 2) 数据导入:mongoimport

      • 1、语法:

        mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field

        参数说明:

        -d :数据库名

        -c :collection名

        –type :导入的格式默认json

        -f :导入的字段名

        –headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段

        –file :要导入的文件

      • 2、示例:

        sudo mongoimport -d mongotest -c users --file /home/mongodump/articles.json --type json

    1. MongoDB备份与恢复
    • 1)MongoDB数据库备份
      • 1、语法:

        mongodump -h dbhost -d dbname -o dbdirectory

        参数说明:

        -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

        -d: 需要备份的数据库实例,例如:test

        -o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放>该数据库实例的备份数据。

      • 2、实例:

        1
        2
        3
        sudo rm -rf /home/momgodump/
        sudo mkdir -p /home/momgodump
        sudo mongodump -h 192.168.17.129:27017 -d itcast -o /home/mongodump/
  • 2)MongoDB数据库恢复

    • 1、语法:

      mongorestore -h dbhost -d dbname --dir dbdirectory

      参数或名:

      -h: MongoDB所在服务器地址

      -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

      –dir: 备份数据所在位置,例如:/home/mongodump/itcast/

      –drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!

    • 2、实例:

      mongorestore -h 192.168.17.129:27017 -d itcast_restore --dir /home/mongodump/itcast/