Mongoose增刪查改

原文連接:Mongoosejavascript

前言

學數據庫確定須要知道怎麼鏈接後臺
Mongoose 是用來方便鏈接 MongoDBnode 的一個工具包
是時候學習一波java

nodejs鏈接MongoDB

鏈接數據庫前須要先打開數據庫 MongoDBnode

yarn add mongoose  // 安裝 mongoose 依賴
let mongoose = require("mongoose");
let db = mongoose.connect("mongodb://127.0.0.1:27107/test");
db.connection.on("error", function (error) {
    console.log("數據庫鏈接失敗:" + error);
});
db.connection.on("open", function () {
    console.log("------數據庫鏈接成功!------");
});

操縱數據

  1. Schema:數據庫集合的模型骨架,或者是數據屬性模型傳統意義的表結構。git

  2. Model :經過Schema構造而成,除了具備Schema定義的數據庫骨架之外,還能夠具體的操做數據庫。mongodb

  3. Entity:經過Model建立的實體,它也能夠操做數據庫。數據庫

但Model比Entity更具操做性。mongoose

let mongoose = require("mongoose");
let db = mongoose.connect("mongodb://127.0.0.1:27017/test");
let TestSchema = new mongoose.Schema({  // 使用 Schema 建立集合結構(表結構)
    name : { type:String },
    age  : { type:Number, default:0 },
    email: { type:String },
    time : { type:Date, default:Date.now }
});
let TestModel = db.model("test1", TestSchema );  // test1 集合使用 Schema 結構,若不存在 test1 集合,則建立
let TestEntity = new TestModel({  // 使用 TestModel 新建一個數據
    name : "helloworld",
    age  : 28,
    email: "helloworld@qq.com"
});
TestEntity.save(function(error,doc){  // 保存數據於 test1 
  if(error){
     console.log("error :" + error);
  }else{
     console.log(doc);
  }
});

Model增刪查改

let TestSchema = new mongoose.Schema({
    name : { type:String },
    age  : { type:Number, default:0 },
    email: { type:String },
    time : { type:Date, default:Date.now }
});
let TestModel = db.model("test1", TestSchema);  
// let TestModel = db.model("test1", new mongoose.Schema());
// 集合結構爲空的話,不能插入數據

  • Model方法 create工具

    TestModel.create({ name:"model_create", age:26}, function(error,doc){
       if(error) {
           console.log(error);
       } else {
           console.log(doc);
       }
    });
  • entity方法 save學習

let Entity = new TestModel({name:"entity_save",age: 27});

Entity.save(function(error,doc) {
    if(error) {
        console.log(error);
    } else {
        console.log(doc);
    }
});

Model.remove(查詢條件,callback);ui

let conditions = {name: 'helloworld'};
TestModel.remove(conditions, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log('Delete success!');
    }
});

Model.update(查詢條件,更新對象,callback)

var conditions = {name : 'test_update'};
var update = {$set : { age : 16 }};  // $set 表示只修改 age,不然全覆蓋
TestModel.update(conditions, update, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log('Update success!');
    }
});

Model.find({}, function(error, docs));
若第一個參數爲空對象,則 docs 爲全部數據

TestModel.find({ "age": 28 }, function (error, docs) {
  if(error){
    console.log("error :" + error);
  }else{
    console.log(docs); //docs: age爲28的全部文檔
  }
});

結語

學習源: Mongoose真是通俗易懂的操做呀MongoDB 好感度 up up up?

相關文章
相關標籤/搜索