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: