主要特点
- MongoDB 是一个基于分布式文件存储的数据库
- MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
- mongoDB是面向文档存储的数据库
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
文档
- 是一组键值(key-value)对(即BSON)
- MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
- 文档中的键/值对是有序的。
- 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
- MongoDB区分类型和大小写。
- MongoDB的文档不能有重复的键。
集合
- 集合就是 MongoDB 文档组
- 集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
安装 启动
brew install mongodb
brew services start mongodb
mongo
操作指令
-
show dbs
查看数据库 -
db.dropDatabase()
删除数据库 -
show tables
查看集合 -
db.collection.drop()
删除集合 -
db.createCollection(name, options)
创建集合 -
show collections
查看已有集合 -
db.collection.drop()
删除集合
mongoose
- Schema定义了一个集合中数据的基本格式,但控制数据的,其实是model。Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
- Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
- Entity : 由Model创建的实体,他的操作也会影响数据库
简单实例
const express = require('express');
const mongoose = require('mongoose');
const app = express();
// 连接mongo
const DB_URL = 'mongodb://localhost/chat';
mongoose.connect(DB_URL);
mongoose.connection.on('connected', () => {
console.log('mongoose connetion seccess!');
})
const User = mongoose.model('user', new mongoose.Schema({
name: {type:String, required: true},
age: {type:String, required: true}
}));
// create、remove、update find findOne
User.create({
name: 'vivi',
age: '2'
}, (err, doc) => {
console.log(err, doc);
})
User.update({name: 'vivi'}, {name:'gaot'},(err, doc) => {
console.log(err, doc);
})
app.get('/data', (req, res) => {
User.find({name: 'gaot'}, (err, doc) => {
res.json(doc);
})
})
app.listen(8083, () => {
console.log('listen on 8083');
})
参考连接
【待续】
网友评论