GolangHub

公众号:Golang语言开发栈

使用Mongodb存储数据

使用Mongodb存储数据

MongoDB 的基本使用

(1)特点:

  • 使用BSON存储数据

  • 支持相对丰富的查询操作

  • 支持索引

  • 副本集

  • 分片

  • 无模式

  • 部署简单方便
    (2)服务的启动:

  • MongoDB 运行的两种方式

  • 启动命令的使用

    1
    2
    mongod --dbpath=/data/db --port=27017 --fork --syslog
    mongod --shutdown

    (3)命令行工具的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mongo 127.0.0.1:27017
show dbs
use member
db.users.insert({"username" : "zhangsan"});
show collections
db.users.find();
db.users.insert("username" : "lisi", "group" : "admin");
db.users.find().count();
db.users.find({"_id" : ObjeactId("")});
db.users.update({"username" : "zhangsan"}, {$set: {"group" : "member"}}, {multi: true});
db.users.save({"_id" : ObjectId(""), "group" : "admin"});
db.users.remove({"group" : "admin"}, true);
db.users.remove({});
db.users.drop();

使用 Mongoose 模块操作 MongoDB

  • 模块介绍
  • 配置与连接
  • Model 与 Schema
  • 创建文档
  • 删除文档
  • 简单查询
  • 条件语句

(1)使用npm包管理工具安装mongoose模块

1
npm install mongoose

(2)model.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 引用模块
var mongoose = require("mongoose");
// 配置
// var uri = "mongodb://username:password@hostname:port/databasename";
var uri = "mongodb://localhost/NodeJS";

// 连接
mongoose.connect(uri);

// 创建Schema
var BookSchema = new mongoose.Schema({
name : String,
author: String,
publishTime: Date
});

// 创建Model
mongoose.model('Book', BookSchema);

insert.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var mongoose = require('mongoose');
require('./model.js');

var Book = mongoose.model('Book');

var book = new Book({
name : "Node",
author : "frank",
publishTime : new Date()
});

book.author = 'zhangsan';

book.save(function(err){
console.log('save status : ', err ? 'failed' : 'success');
});

find.js

1
2
3
4
5
6
7
8
9
10
11
var mongoose = require('mongoose');
require('./model.js');

var Book = mongoose.model('Book');
Book.find({}, function(err, docs){
if(err){
console.log('err: ', err);
return;
}
console.log('result', docs);
});

findOne.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var mongoose = require('mongoose');
require('./model.js');

var Book = mongoose.model('Book');

Book.findOne({author : "zhangsan"}, function(err, doc){
if(err){
console.log('err', err);
return;
}

doc.author = "lisi";
doc.save();
console.log('findOne result: ', doc);
});

remove.js

1
2
3
4
5
6
7
8
9
10
11
12
var mongoose = require('mongoose');
require('./model.js');
var Book = mongoose.model('Book');
Book.findOne({author : "lisi"}, function(err, doc){
if(err){
console.log('findOne err: ', err);
return;
}
if(doc){
doc.remove();
}
})

condition.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var mongoose = require('mongoose');
require('./model.js');
var Book = mongoose.model('Book');
var cond = {
$or : [
{author : "zhangsan"},
{author : "lisi"}
]
};

Book.find(cond, function(err, doc){
if(err){
console.log('find by cond err: ', err);
return;

}
console.log('cond: ', cond, 'result: ', doc);
});

在Express 项目中使用 Mongoose

待续…

更多精彩内容,请关注公众号 Golang语言开发栈公众号二维码
感谢赞赏.

Welcome to my other publishing channels