MongoDB介绍

  1. 关系型数据库和非关系型数据库
    1. 关系型数据库: mysql, oracle, sqlserver
    2. 非关系型数据库:
  2. 一条数据就是一个document(文档)
  3. 多个document组成一个collection(集合)

    (一) mongoose 连接数据库

  4. 安装mongoose模块

    1. npm i mongoose --save
  5. 在nodejs中使用mongoose连接数据库(把数据库连接做成一个模块, 在需要的时候倒入即可) ```javascript // 数据库连接模块, 不使用module.exports,模块被require便被直接执行

// 导入mongoose模块 const mongoose = require(‘mongoose’); // 连接数据库,第一个参数为数据库地址(如果是远程数据库,修改地址即可),第二参数为对象,为了消除警告信息 mongoose.connect(‘mongodb://localhost/hero’, { useNewUrlParser: true, useUnifiedTopology: true }); // 获取连接对象,为了监听连接情况,后面这几行代码不要也可以,不过不要就无法知道连接是否成功 var db = mongoose.connection; db.on(‘error’, function (err) { console.log(‘数据库连接失败’, err); }); db.once(‘open’, function () { console.log(‘数据库连接成功’); });

  1. 3. app.js中导入即可
  2. <a name="lg7KC"></a>
  3. ## (二) 数据增删改查
  4. 文档地址:<br />[http://www.mongoosejs.net/docs/index.html](http://www.mongoosejs.net/docs/index.html)
  5. ```typescript
  6. // 创建用户数据结构, 就是一条数据,拥有哪些字段(属性)
  7. var userSchema = mongoose.Schema({
  8. name: '',
  9. age: '',
  10. });
  11. // 创建一个model(模型), 模型用来跟数据库进行通信的
  12. var userModel = mongoose.model('User',userSchema);
  13. // 新增
  14. var data = {name: '张三',age:25}
  15. var model = new userModel(data);
  16. model.save() // promise
  17. // 删除
  18. var query = {xxx: xxx}; // 删除条件
  19. userModel.deleteOne(query); // 删除一条
  20. userModel.deleteMany(query); // 删除多条
  21. // 举例:
  22. userModel.deleteMany({age:20}); // 删除age为20的所有数据
  23. userModel.deleteMany({ _id: [_id1,_id2]}); // 删除_id为_id1、_id2的数据
  24. // 更新
  25. var query = {xx:xx}
  26. var data = {xx:xx};
  27. userModel.updateOne(query,data)
  28. userModel.updateMany(query,data)
  29. // 查找
  30. var query = {xx:xx}; // 查找条件,由前端传过来
  31. userModel.find(query); // 根据条件查找,若query对象为空,或者不传query对象为查找全部
  32. userModel.findOne(query) // 查找一个

(三) gt和lt查询(了解)

$gt和$lt用于查询大于和小于的情况,比如要查询年龄大于18岁的用户

  1. model.where('age').gt(18); // 查找年龄大于18岁的数据,注意:age在数据库中必须是number类型

(四) 排序

  1. model.find().sort({ name: 1 });// 按名字升序排序,-1为降序排序

(五) robo3t操作

  1. 添加数据库
  2. 添加collection(集合)
  3. 添加document(文档)
  4. 批量添加文档
  5. 查找document
  6. 修改document