mongodb的介绍:
一个文档型数据库(非关系型数据库nosql也是)
层级为:数据库=====》集合(表)===》文档(数据)类json的数据结构
安装:
mongodb官网下载
- 左下角小箭头 不要点
- 可能缺少 api-ms 文件 可以去 postman(下载软件psostman 文件里边有api-ms文件) 找
- 可能缺少c/data/db 文件 进行创建
运行 - mongod 运行mogodb数据库
- mongo 链接数据库 并且可以执行查询语句
- cls 清屏
基本指令
db操作:
show dbs (databases) 显示当前数据库
use dbname 切换数据库 创建数据库
创建的是一个临时数据库,需要在临时数据库里添加一个集合,数据才有效
db 指代当前使用的数据库
db.dropDatabase() 删除数据库
collection 操作
db.createCollection('集合的名字')//创建一个集合
db.集合名.drop() //删除一个集合
show collections 查看当前所有的集合
document 操作
db.dbname.增删改查().pretty() 格式化数据
增:
文档的数据结构和JSON基本一样。
所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
db.dbname.insert(obj) //插入数据(可多可少) 主键不能重复
主键: 唯一不重复 mongodb 中的_id默认是一个特殊的数据类型 objectId
主键可以人为设置 如果不设置就是默认的objectId
db.dbname.save(obj) //插入数据 主键不存在插入 主键存在就是覆盖
批量导入:1.以数组的形式导入
2.外部导入
退出mongo环境
mongoimport --db study --collection score --file 路径 --drop
–db:数据库
–collection:集合名字
–file:文件的地址
–drop :该项为可选 项,添加的话表示覆盖。否则是追加。
删:
db.dbname.remove({"xxx":xx});删除xxx为xx的所有文档
db.dbname.remove({"xxx":xx},{justOne:true});删除第一个xxx为xx的文档
db.dbname.remove({})删除集合中所有的数据
改:
db.dbname.update({条件},{$set:{修改的项}})
db.dbname.update({条件},{$set:{修改的项}},{multi:true})修改所有完整修改
查:
1.db.dbname.find()查找所有的
2.条件查找
$gt: 大于 $gte 大于等于
$lt: 小于 $lte 小于等于
$ne: 不等于
3.多多查找
db.dbname.find($and:{xxx,yyy}) 同时满足xxx yyy
4.db.dbname.find($or:[xxx,yyy]) xxx和yyy都可以
5.模糊搜索
db.dbname.find({xxx:/x/})xxx中含有x
6. db.dbname.count() db.dbname.find().count() 查看文档总条数
7.排序 db.dbname.find().sort({xx:1}) 从小到大
db.dbname.find().sort({xx:-1}) 从大到小 排序优先
8.db.dbname.find().skip(x)跳过指定文档条数
9. db.dbname.find().limit(x) 调取前x条 0为所有
注:skip和limit顺序没关系 都是先跳过再调取
10. limit(每页的数量3).skip(0)
已知:
总条数:pageSum
每页显示的条数:pageNum
当前的页数:pageIndex
skip=(pageIndex-1)*pageNum;
Nodejs连接:
//引入第三方模块mongodb
const MongoClient=require('mongodb').MongoClient;
var DB_COMN_STR='mongodb://localhost:27017/';
MongoClient.connect(DB_COMN_STR,{ useNewUrlParser: true },function(err,client){
console.log('连接成功');
const db=client.db('study');
db.collection('list').find().toArray((err,data)=>{
console.log(err);
console.log(data);
})
})
robo3t mongodb 可视化工具
1.配置安装
2.测试链接 默认设置 localhost:27017
3.可视化操作界面 运行mongodb指令进行查询操作
mongoose的使用
引入
npm install mongoose --save
const mongoose=require('mongoose');
链接数据库
扫描二维码关注公众号,回复:
4449184 查看本文章
mongoose.connect('mongodb://127.0.0.1:27017/数据库名称',{useNewUrlParser:true});
//跟新版本
获取db对象(connection)
let db=mongoose.collection
监听事件
db.on("error", function (error) {
console.log("Database connection failure:" + error);
});
db.on("open", function () {
console.log("数据库连接成功");
})
db.on('disconnected', function () {
console.log('数据库连接断开');
})
创建schema对象并实例化
const Schema=mongoose.Schema;
let useSchema=new Schema({
name:{type:string,required:true},
age:{type:Number,required:false}
})
将schema对象转化为数据模型
mongoose,model(' 表名 ',schema对象的名字)
// 如果表明不是复数他会变成复数
// 将数据表与schema对象进行关联
// use uses 复数
var use=mongoose.model( 'use',userSchema );
mongoose 所有的查询结果都是promise
增
use.insertMany({name:"你还22"})
.then((data)=>{
console.log(data);
})
.catch((err)=>{
console.log(err);
})