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;
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');
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();
总结: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: