mongoDB

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;
View Code

  二、定義數據庫表存儲結構 的文件 —— 好比存儲用戶的表,插件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

  三、業務中 操做 數據庫的 地方,好比插入數據 —— 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 可視化工具:

一、Robo 3T  :http://www.javashuo.com/article/p-cafcweur-mn.html (推薦用這個)

二、Studio 3T :該公司收購了 Robo 3T。Studio 3T 軟件太大了,幾百兆。

三、mongdbVue:

相關文章
相關標籤/搜索