mongoDB 简介

参考文档       

   https://www.runoob.com/mongodb/mongodb-tutorial.html  mongoDB 菜鸟教程
   https://mongodb.net.cn/manual/  mongoDB 中文官网

 

1. mongoDB 概述

MongoDB 是一个流行的开源文档型数据库,它使用类似 JSON 的文档模型存储数据,这使得数据存储变得非常灵活。
MongoDB 是一个基于文档的 NoSQL 数据库,由 MongoDB Inc. 开发。
MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

 

注释:关系型数据库 与 非关系型数据库 的区别,如下:

 

2. mongoDB 的相关概念与术语

SQL与 MongoDB 的区别 

 注释:其他术语详见菜鸟教程 https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

 

3. 安装 mongoDB 

  下载绿色版:http://www.winwin7.com/soft/10457.html

  

  注释:将绿色版的软件包,解压到目录:D:\0_software\mongoDB\install

解压包的根目录如下:

bin目录如下:

 

  

4. 启动 mongod 服务 与 mongo 客户端 (windows系统下)

  (1)启动 mongod 服务: 在 bin 目录下执行如下指令  mongod -- dbpath [存放数据库的地址]

   (2)启动 mongo 客户端:在 bin 目录下执行如下指令  mongo  node.js 操作 mongoDB 时,无需启动客户端)

     之后,就可以在 mongo 客户端执行指令,操作 mongoDB 数据库了!

 

5. mongoDB 的可视化工具

  虽然可以在mongo客户端直接执行指令操作数据库,但是,也有可视化工具进行直观的操作与查看。

  常用的 mongoDB 可视化工具有:Robomongo Robo3T、adminMongo

 

6. mongoDB 的常见指令

  注意:以下指令都是基于mongo客户端中执行的!(node.js中操作数据库的指令参考 mongoose 网站

  (1)MongoDB 的一些基本指令

    help   提示一些基础指令(help/show/find)
    db.help()
    db.mycoll.help()
    db.mycoll.find().help()


    db.stats()      显示当前DB状态
    db.version()     查看当前DB版本
    db.getMongo()     查看当前DB的链接机器地址
    db.getPrevError()     查看之前的错误信息
    db.resetError()       清楚之前的错误信息

 

  (2)数据库 database 的操作指令
    show dbs           查询所有数据库
    db / db.getName()        查看当前的数据库(无需参数)
    use <db_name>        创建/切换数据库
    db.dropDatabase()       删除当前数据库(无需参数)
    db.copyDatabase("form_db_name", "to_db_name")   复制当前的 from_db_name 数据库到 to_db_name 数据库中(mongoDB不支持重命名数据库,但可以新建数据库后复制数据)
    

    注意:创建空数据库之后,show dbs不能查询出该空数据库,得在该空数据库中创建数据表了才行。(database--collection/table--document/row--field/column)
    

   (3)数据表 collection 的操作指令

    show collections          查询当前数据库下的所有的数据表
    db.getCollectionNames()       查询当前数据库下的所有的数据表
    db.getCollection("collName")      查询当前数据库下的指定名称的数据表

    db.createCollection("collName", {size: 20, capped: 5, max: 100})    创建数据表(第二个参数可选,capped表示集合有大小上限,size是字节单位,max是最大文档数)
    db.collName.drop()                        删除数据表
    db.collName.renameCollection("collName2")            重命名数据表    

    db.collName.getDB()          查询指定数据表的所在数据库名称
    db.collName.stats()            得到当前数据表的状态
    db.collName.count()           查询数据表的数据条数
    db.collName.dataSize()         查看数据表的数据空间大小
    db.collName.totalSize()         得到当前数据表的总大小
    db.collName.storageSize()       得到当前数据表的储存空间大小

 

  (4)数据文档/行 document 的操作指令

       db.collName.save({name: "zhangsan", age: 25 })   添加(参数可以是 对象或数组)

    db.collName.remove({ })       删除所有记录
    db.collName.remove({age: 12})    删除

    db.collName.update({age: 25}, {$set: {name: "changeName"}}, false, true)         修改【$set - -赋值】
    db.collName.update({name: ‘Lisi’}, {$inc: {age: 50}}, false, true)                修改【$inc -- 增加】
    db.collName.update({name: ‘Lisi’}, {$inc: {age: 50}, $set: {name: "hoho"}}, false, true)     修改【$set - -赋值,$inc -- 增加】

    db.collName.find()          查询所有记录
    db.collName.findOne()         查询第一条(相当于:db.userInfo.find().limit(1) )

    db.collName.find({“age”: 22})       查询记录-equal条件筛选
    db.collName.find({ name: 'raykaeso', age: 22})    查询记录-and条件筛选
    db.collName.find({$or: [{age: 22}, {age: 25}]})      查询记录-逻辑操作符条件筛选(逻辑操作符:$or、$and、$not)
    db.collName.find({ age: {$gt: 22} })          查询记录-比较操作符条件筛选(比较操作符:$gt、$gte、$lt、$lte、$eq、$ne)
    db.collName.find({ age: {$gte: 25 }}).count()      查询记录-匹配符条件筛选-记录条数
    db.collName.find({ name: /^A/ })           查询记录-regexp条件筛选

    db.collName.find({name: /mongo/})     模糊查询(相当于%%)
    db.collName.distinct("name")         去重查询

    db.collName.find().sort({age: 1})        查询记录-排序(升序)
    db.collName.find().sort({age: -1})       查询记录-排序(降序)
    db.collName.find().limit(5)           查询记录-限制返回的记录条数
    db.collName.find().skip(10)         查询记录-跳过n条数数据
    db.collName.find().limit(10).skip(5)      查询记录-限制&跳过

    db.collName.find({}, {name: 1, age: 1})         查询-返回指定字段
    db.collName.find({age: {$gt: 25}}, {name: 1, age: 1})   查询-返回指定字段 

    组合处理:查询、排序、修改、删除
    db.collName.findAndModify({
      query: {age: {$gte: 25}},
      sort: {age: -1},
      update: {$set: {name: ‘a2′}, $inc: {age: 2}},
      remove: true
    })

 

 

7. node.js 与 mongoDB 的  交互

详见下一节 “node/expressjs 连接与操作 MongoDB

 

 

 

 

 

 

posted @ 2024-09-25 16:57  一只两支三指  阅读(26)  评论(0编辑  收藏  举报