2019 年 01 月 10 日

简介

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 这样的数据存储目录

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

mongod --dbpath=数据储存目录

连接和退出数据库

#先启动数据库
mongod

#再开启一个控制台
mongo

退出:exit 就可以了

安装

基本命令

  • show dbs

    • 查看显示所有数据库 默认有一个 admin 和 local 系统自带的
  • db

    • 查看当前操作的数据库
  • use 数据库名字

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

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

  • 插入数据

# 插入一条 集为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

前言

官方案例

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,
  },
})

小栗子

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()添加
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)
  }
})
  • 查询
		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)
		        }
		    })
		psfind() 无论 怎样都会返回一个数组

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

附赠 mysql

  • npm i —S mysql //下载包
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()

关注本站 RSS
© 2024, 滇ICP备19003866号
本网站版权归本站作者Ruoduan所有
原创文章遵循CC BY-SA 4.0授权许可,转载请注明出处