浅谈mongodb

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

猜你喜欢

转载自blog.csdn.net/weixin_43654258/article/details/84749880