nosql数据库-mongodb使用gongoos的CRUD

简介

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

具体链接: 菜鸟教程

根据自己的操作系统和需求下载:我这里选择的是社区版的

下载完成后点击安装:
安装

完成安装顾名思义 next 就完了

我这里选择的自定义安装 看看有哪些东西

安装

next

安装

选择相应的安装文件夹,这里的安装路径在后面配置 环境变量的时候要用到

一直next 安装完成后 我们用 命令行 看一下 有没有安装成功

  • 用mongod – vesrion
    安装

可以看到 并没有 显示版本号 ,因为我们还没有配置环境变量,下面来配置一下环境变量

配置环境变量

安装

  • 打开安装路径找到bin 的路径复制

安装

找到系统-环境变量
安装

  • 现在我们再来 mongod -version
    安装

好了 到这一步 就说明 我们的 mongodb 安装成功了

开启和停止

mongodb 数据库和其他 sql 系列数据库有些不同,他在安装成功后,在我我们的服务列表是没有的,需要我们去手动安装,已达到 点击完成启动和停止的效果
安装服务的 方法 具体参考菜鸟教程 :http://www.runoob.com/mongodb/mongodb-window-install.html

我这里就是一把梭 /手动狗头~

但是:这边并不影响我们的使用 我们可以通过命令行来启动和停止他 —— 非常简单
服务启动命令:mongod
停止:直接 Ctrl+C or 关闭窗口
ps: 这里有个注意点:

mongodb 默认使用mongod 命令所在的盘符的磁盘更目录作为自己的数据存储目录也就是
目录盘符/data/db

第一次启动

所以在第一次启动的时候要去 手动创建一个 data/db 这样的数据存储目录

当然我们也可以手动 修改 默认数据储存目录

1
mongod --dbpath=数据储存目录

连接和退出数据库

1
2
3
4
5
#先启动数据库
mongod

#再开启一个控制台
mongo

退出:exit 就可以了

安装

基本命令

  • show dbs
    • 查看显示所有数据库
      默认有一个admin和local 系统自带的
  • db
    • 查看当前操作的数据库
  • use 数据库名字

    • 切换到指定数据库(如果没有会新建)

      ps:如果数据库里面没有数据 show db 是看不到这个数据库的

  • 插入数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 插入一条 集为students的数据
    db.students.insertOne({"id":"1","name":"Tom"}).students.insert

    #查看当前集
    show collections
    #查看当前集下面对 所有数据
    > db.students.find()
    > 如下:
    { "_id" : ObjectId("5c2e19bf5d2f7705c12fcb62"), "id" : "1", "name" : "Tom" }

当然这边的操作 只是一个初体验,我们在真正使用的时候是不会用这种方式去使用的,用一些语言 例如nodejs Ruby 等一些 语言来实现 CRUD 的操作

  • 下面我们使用 mongoose 进行一些简单的CRUD

Nodejs-mongodb,mongoose的CRUD

前言

官方案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var mongoose = require('mongoose');//官方案例
var Schema = mongoose.Schema;
var blogSchema = new Schema({
title: String,
author: String,
body: String,
comments: [{ body: String, date: Date }],
date: { type: Date, default: Date.now },
hidden: Boolean,
meta: {
votes: Number,
favs: Number
}
});

小栗子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//连接数据库
//指定链接的的数据库不需要存在,当你插入第一条数据后就会被自动创建出来
mongoose.connect('mongodb://localhost:27017/itcast');

//设计文档结构(表结构)
var userSchema = new Schema({
username: {
type: String,
require: true //表示必须有
},
password: {
type: String,
require: true
},
email: {
type: String
}
})
  • 将文档结构发布为模型

    • mongoose.model() 是用来讲一个架构发布为model的

      • 第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称,mongoose会自动将大写单数名词字符串
    • 生成 小写复数 的集合名称 例如这里的 User => users集合名称

    • 第二个参数:架构的名称

      • 返回值 模型构造函数

        var User = mongoose.model(‘User’, userSchema)

  • 增加数据
    • 先new 一个数据对象
    • 使用模型.save()添加
1
2
3
4
5
6
7
8
9
10
11
12
13
var admin = new User({
username: 'zx',
password: '321',
email: 'zx@ad.com'
})
admin.save(function(err,ret) {
if (err) {
console.log('保存失败');
} else {
console.log('保存成功');
console.log(ret);
}
})
  • 查询
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
User.find(function (err,ret) { //查询所有
if (err) {
console.log('查询失败');
} else {
console.log(ret)
}
})

User.find({ //按条件查询 第一个参数 放入一个 对象 "条件" 即可
username: 'zx'
},
function (err, ret) {
if (err) {
console.log('查询失败');
} else {
console.log(ret)
}
})
ps :find() 无论 怎样都会返回一个数组

User.findOne({ //插入条件后 只会返回一个对象,如果没有条件默认返回第一条数据
username: 'zx'
},
function (err,ret) {
if (err) {
console.log('查询失败');
} else {
console.log(ret);
}
}
)
  • 更新数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
User.findByIdAndUpdate(
'5c2f01c67677e410308a223a', {
username: 'updata后的admin',
password: '666666'
},
function (err, ret) {
if (err) {
console.log('更新失败');
} else {
console.log('更新成功');
console.log(ret);// 这里是返回更新前的对象内容
}
}
)
  • 删除数据
1
2
3
4
5
6
7
8
9
10
11
User.remove({
username: 'zx'
},
function (err, ret) {
if (err) {
console.log('失败');
} else {
console.log('成功');
console.log(ret);
}
})

附赠 mysql

  • npm i –S mysql //下载包
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
var mysql = require('mysql');

// 1. 创建连接
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'users' // 数据库名字
});

// 2. 连接数据库 打开冰箱门
connection.connect();

// 3. 执行数据操作 把大象放到冰箱
connection.query('SELECT * FROM `users`', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results);
});

// connection.query('INSERT INTO users VALUES(NULL, "admin", "123456")', function (error, results, fields) {
// if (error) throw error;
// console.log('The solution is: ', results);
// });

// 4. 关闭连接 关闭冰箱门
connection.end();

本网站作品部分来自于网络,感谢开源社区的诸多开发者 My_Github and My_E-mail

Copyright © 2013 - 2019 Ruoduan's Blog All Rights Reserved.

访客数 : | 访问量 :

{% if theme.fireworks %} {% endif %} {% if theme.canvas_nest %} {% endif %} {% if theme.Background_music %} {% endif %}