mongoDB

mongoDB概念https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html(mysql中的表,在mongodb中叫 集合。我这里统一用表表示,好理解点)

  1、mongodb 中不需要建立数据库,当你需要连接的数据库不存在时,会自动创建一个出来。

mongoose概念: https://www.cnblogs.com/xiaohuochai/p/7215067.html?utm_source=itdadao&utm_medium=referral

  1、Schema用于定义数据库的结构

  2、Model是由Schema编译而成的构造器,具有抽象属性和行为,可以对数据库进行增删查改。Model的每一个实例(instance)就是一个文档document(个人理解,这里的文档就是一条记录)


1、MongoDB和Robomongo的安装配置与简单实战 :https://blog.csdn.net/u011684839/article/details/80911732 或 https://www.jianshu.com/p/1c85bf051754 或 https://www.jb51.net/article/149859.htm(推荐这个,这个新版软件的安装方式)

   注:MongoDB 新版的已经不支持32位的系统了。所以要安装 win32位 的MongoDB,请参考:https://www.cnblogs.com/chenyucong/p/6217017.html (亲测有效,免安装的)

2、express 连接 mongoDB :https://www.cnblogs.com/wljqds/p/10719220.html(亲测有效,一般用mongoose插件操作mongoDB)

3、mongoose常用api文档 : https://www.jianshu.com/p/fc11fd1c26f9  或 https://www.cnblogs.com/wx1993/p/5243245.html (两篇文章 结合起来看)

     注:Mongoose在创建Model时对Collection的命名策略,和设置的不一定一致。https://www.cnblogs.com/wx1993/p/5243245.html。      解决办法:https://my.oschina.net/baiping/blog/1488806(亲测有效,第三个参数就是实际的集合名)

4、Mongoose 操作数据库,js文件放置:https://blog.csdn.net/qq_25479327/article/details/81148772

   总结:Mongoose 操作数据库一般放在3种文件中。

  1、第一个是所有操作数据库公用的代码 —— db.js 文件。(连接数据库的 程序)

const mongoose = require('mongoose');
const DB_URL = 'mongodb://localhost:27017/mydatabase';

// 连接
mongoose.connect(DB_URL, { useNewUrlParser: true });
// 连接成功
mongoose.connection.on('connected', function () {
  console.log('Mongoose connection open to ' + DB_URL);
})
// 连接异常
mongoose.connection.on('error', function (err) {
  console.log('Mongoose connection error ' + err);
})
// 连接断开
mongoose.connection.on('disconnected', function () {
  console.log('Mongoose connection disconnected ');
})

module.exports = mongoose;
View Code

  2、定义数据库表存储结构 的文件 —— 比如存储用户的表,插件user.js。(每个表的结构是不一样的,所以一个表对应一个这个文件。)  Schema定义数据文档结构 (即表的 字段 属性)

/**
 * 用户信息
 */
// 定义数据库表存储结构
const mongoose = require('./db');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
  username: { type: String }, // 用户名
  password: { type: String }, // 用户密码
  age: { type: String }, // 用户年龄
  lastLoinDate: { type: Date } // 最近登录一次时间
})

// 生成Model
module.exports = mongoose.model('user', UserSchema,'user');
View Code

  3、业务中 操作 数据库的 地方,比如插入数据 —— test.js里面,需要的操作数据库的地方 执行下面的程序。 通过new 一个 model 对象,初始化这个对象时,把数据插入到文档中。

     注意:数据插入到文档上,并没有插入到数据库中。使用文档对象的方法,将文档插入到数据库中。

const User = require('./user');

// 插入
function insert() {
  var user = new User({
    username: "陈二狗", // 用户名
    password: "abc123", // 用户密码
    age: 18, // 用户年龄
    lastLoinDate: new Date() // 最近登录一次时间
  });

  user.save(function (err, docs) {
    if(err) {
      console.log("Error: " + err);
    } else {
      console.log("docs: " + docs);
    }
  })
}
insert();
View Code

 总结:https://www.cnblogs.com/xiaohuochai/p/7215067.html?utm_source=itdadao&utm_medium=referral(比较详细)

   Mongoose 对是数据库的操作是基于 Schema 来操作的。通过 mongoose.model() 方法将Schema编译为Model(文档),文档的结构 数据 都设置好了,最后将文档映射( save()方法 )到数据库中就可以了。


mongoDB 可视化工具:

1、Robo 3T  :https://www.cnblogs.com/tugenhua0707/p/9250673.html (推荐用这个)

2、Studio 3T :该公司收购了 Robo 3T。Studio 3T 软件太大了,几百兆。

3、mongdbVue:

原文地址:https://www.cnblogs.com/wfblog/p/11057123.html