Fork me on GitHub

mongodb数据库的使用

突然间需要使用这个东西了,调试还遇到了问题,所以还是简单了解一下他吧。

js

一、mongodb的开启和关闭

1. 查找mongod是否可用

which mongod

2. 启动mongodb

指定path 和log日志
mongod --dbpath /data2/db --port=27017 --fork /data2/db/log/mongod.log

3. 关闭数据库

mongod --shutdown

二、mongodb的操作

1. 连接服务器

mongod 115.29.137.34:27017

2. 使用数据库

(不存在的数据库也可以使用,插入数据之后会自动保存)
use mydb

3. 权限登陆

db.auth('username','password')

4. 展示数据库列表

show dbs

5. 插入数据

(类似于mysql的表)
db.users.insert({'name':'xiaomo'})
db.users.insert({'name':'xiaoming','age':25})
db.users.insert({'name':'xiaoming','age':24,'sex':'女'})

6. 查询集合

(前提是use了一个数据库)
有一个System.indexes 是索引
show collections

7. 不带条件查询

db.users.find()

8. 带条件查询

(参数是一个对象)
db.users.find({'name':'xiaomo'})

9. 更新数据

(有三个参数,1:查询条件,2:更新的内容 3:更新的配置)
db.users.update({'name':'xiaomo',{$set:{'name:'xm}})修改满足条件的第一条数据
db.users.update({'name':'xiaomo',{$set:{'name:'xm}},{multi:true})修改所有满足条件的数据

10. 保存数据

(只有一个参数,必须要传id,后面是要修改的数据)
db.users.save({'id':'objectId(574710a97a3afd63cde56a49)','age':30})

11. 删除数据

(1:条件 2 是否删除所有符合条件的)
db.users.remove({'name':'xiaomoing'},true)

12. 删除集合

db.users.drop()

三、使用mongoose操作数据库

1. 模块的介绍

连接mongdodb的驱动

2. 配置和链接

npm install --save mongoose

1
2
3
4
var mongoose = require('mongoose');
<!-- var uri = 'mongodb://username:password@hostname:port/databasename'; -->
var uri = 'mongodb://xiaomo:xiaomo@115.29.137.34:27017/admin';
mongoose.connect(uri);

3. Model 和Shema

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
 // model.js
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;

var BlogPost = new Schema({
author : ObjectId,
title : String,
body : String,
date : Date
});

//Model
mongoose.model('blog',Schema);

var Comment = new Schema({
name: { type: String, default: 'hahaha' },
age: { type: Number, min: 18, index: true },
bio: { type: String, match: /[a-z]/ },
date: { type: Date, default: Date.now }
});

// a setter
Comment.path('name').set(function (v) {
return capitalize(v);
});

// middleware
Comment.pre('save', function (next) {
notify(this.get('email'));
next();
});

4. 创建文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//insert.js
var mongoose = require('mongoose');
require('./model.js'); //执行
var Blog = mongoose.model('blog');
var blog = new Blog({
name:'xiaomo',
age:25,
bio:'don't know',
date:new Date
});

book.save(function(err){
console.log('save status:'+err);
});

5. 删除文档

1
2
3
4
5
6
7
8
9
10
11
12
var mongoose = require('mongoose');
require('./model.js');
var Blog = mongoose.model('blog');
Blog.findOne({'name':'xiaomo'},function(err,doc){
if(err){
console.log(err)
return;
}
if(doc){
doc.reomove();
}
})

6. 简单查询

1
2
3
4
5
6
7
8
9
10
var mongoose = require('mongoose');
require('./model.js');
var Blog = mongoose.model('blog');
Blog.find({},function(err,doc){
if(err){
console.log(err)
return;
}
console.log('result',doc)
})

第一个满足条件的结果

1
2
3
4
5
6
7
8
9
10
var mongoose = require('mongoose');
require('./model.js');
var Blog = mongoose.model('blog');
Blog.findOne({'name':'xiaomo'},function(err,doc){
if(err){
console.log(err)
return;
}
console.log('result',doc)
})

7. 条件语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// condation.js
var mongoose = require('mongoose');
require('./model.js');
var Blog = mongoose.model('blog');
//名字是xiaomo或者xiaoming 可以用$or和$and
var condation = {
$or $and:[
{'name':'xiaomo'},
{'name':'xiaoming'}
]
}
Blog.find(condation,function(err,doc){
if(err){
console.log(err)
return;
}
console.log('result',doc)
})

三、在项目中使用mongoose

1. 生成项目

koa koatest -e koatest

2. 安装依赖

cd koatest && npm install

3. 安装mongoose

npm install --save mongoose

4. 创建模型

1
2
3
4
5
6
7
8
9
// models/users.server.model.js
var mongoose = require('mongoose');
var UserSchema = new mongoose.Schema({
uid:Number,
username:String,
createTime:Date,
lastLogin:Date
})
module.exports = mongoose.model('User',UserSchema);

5. 创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
// config/config.js
module.exports={
mongodb:'mongodb://xiaomo:xiaomo@115.29.137.34:27017/admin'
}
//config/mongoose.js
var mongoose = require('mongoose');
var config = require('./config.js');

module.exports=function(){
var db = mongoose.connect(config.mongodb);
require('./../models/users.server.model.js');
return db;
}

6. 操作mongdodb 代码

1
2
3
4
5
6
7
8
9
10
11
12
//routers/users.js
var router = require('koa-router')();
var mongoose = require('mongoose');
var User = mongoose.model('User');
router.get('/', function *(next) {
//add
var user = new User({
uid:
})
this.body = yield User.find({});
});
module.exports = router;

嗯嗯,就这样吧,完!

本文标题:mongodb数据库的使用

文章作者:DRLong

发布时间:2018年05月21日 - 00:05

原始链接:https://duanruilong.github.io/2018/05/21/mongodb数据库的使用/ 复制文章链接==>

-------------我是一条分割线感谢您的阅读-------------
DRLong WeChat Pay

微信打赏

DRLong Alipay

支付宝打赏