mongoDB概念:https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html(mysql中的表,在mongodb中叫 集合。我这里统一用表表示,好理解点)javascript
一、mongodb 中不须要创建数据库,当你须要链接的数据库不存在时,会自动建立一个出来。
html
mongoose概念: https://www.cnblogs.com/xiaohuochai/p/7215067.html?utm_source=itdadao&utm_medium=referraljava
一、Schema
用于定义数据库的结构mysql
二、Model是由Schema编译而成的构造器,具备抽象属性和行为,能够对数据库进行增删查改。Model的每个实例(instance)就是一个文档document(我的理解,这里的文档就是一条记录)sql
一、MongoDB和Robomongo的安装配置与简单实战 :https://blog.csdn.net/u011684839/article/details/80911732 或 https://www.jianshu.com/p/1c85bf051754 或 https://www.jb51.net/article/149859.htm(推荐这个,这个新版软件的安装方式)mongodb
注:MongoDB 新版的已经不支持32位的系统了。因此要安装 win32位 的MongoDB,请参考:http://www.javashuo.com/article/p-cqigtixm-bo.html (亲测有效,免安装的)数据库
二、express 链接 mongoDB :http://www.javashuo.com/article/p-bnztbavd-em.html(亲测有效,通常用mongoose插件操做mongoDB)express
三、mongoose经常使用api文档 : https://www.jianshu.com/p/fc11fd1c26f9 或 http://www.javashuo.com/article/p-gstbkvzd-gv.html (两篇文章 结合起来看)api
注:Mongoose在建立Model时对Collection的命名策略,和设置的不必定一致。http://www.javashuo.com/article/p-gstbkvzd-gv.html。 解决办法:https://my.oschina.net/baiping/blog/1488806(亲测有效,第三个参数就是实际的集合名)mongoose
四、Mongoose 操做数据库,js文件放置:https://blog.csdn.net/qq_25479327/article/details/81148772
总结:Mongoose 操做数据库通常放在3种文件中。
一、第一个是全部操做数据库公用的代码 —— 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;
二、定义数据库表存储结构 的文件 —— 好比存储用户的表,插件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');
三、业务中 操做 数据库的 地方,好比插入数据 —— 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 可视化工具:
一、Robo 3T :http://www.javashuo.com/article/p-cafcweur-mn.html (推荐用这个)
二、Studio 3T :该公司收购了 Robo 3T。Studio 3T 软件太大了,几百兆。
三、mongdbVue: