91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在node中使用Mongoose類庫實現增刪改查操作

發布時間:2021-03-25 17:50:16 來源:億速云 閱讀:184 作者:Leah 欄目:web開發

怎么在node中使用Mongoose類庫實現增刪改查操作?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Mongoose安裝

npm install mongoose

安裝成功后,我們就可以使用 require('mongoose')來使用了;

下面是鏈接本地數據庫 mongoosedb,代碼如下:

var mongoose = require('mongoose');
var DB_URL = 'mongodb://localhost:27017/dataDb';

/* 鏈接 */
mongoose.connect(DB_URL);

/* 鏈接成功 */
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');
});

如下圖所示

怎么在node中使用Mongoose類庫實現增刪改查操作

從如上代碼,監聽了幾個事件,并且執行觸發了connected事件,這表示連接成功。

2. Schema介紹

它是一種以文件形式存儲的數據庫模型骨架,不具備對數據庫操作的能力,僅僅只是數據庫在程序片段中的一種表現,可以理解為表結構。

那么如何去定義一個Schema呢?請看如下代碼:

var mongoose = require('mongoose');
var TestSchema = new mongoose.Schema({
 name: { type: String }, // 屬性name,類型為String
 age: { type: Number, default: 30 }, // 屬性age,類型為Number,默認值為30
 time: { type: Date, default: '當前時間' }
});

如上在我們的TestSchema中每個key在我們的文件將被轉換為相關的SchemaType定義的一個屬性。允許使用的SchemaTypes有如下類型:

  • String

  • Number

  • Date

  • Buffer

  • Boolean

  • Mixed

  • ObjectId

  • Array

如果我們在如上編寫完成后,我們需要添加額外的鍵的話,我們可以使用Schema中的add方法.

3. 創建一個模型

我們上面定義了Schema,我們需要將我們的TestSchema轉成我們可以使用的模型,模型具有對數據庫操作的能力。
我們可以通過 mongoose.model(modelName, schema);

先來結合schema和創建一個模型來簡單的看一個demo,如下代碼:

var mongoose = require('mongoose');
// schema定義
var TestSchema = new mongoose.Schema({
 name: { type: String },
 age: { type: String },
 sex: { type: String }
});

// 創建model
var TestModel = mongoose.model('test1', TestSchema);

// 初始化數據 
var TestInt = new TestModel({
 name: 'kongzhi',
 age: '30',
 sex: 'girl'
});

console.log(TestInt.name); // kongzhi
console.log(TestInt.age); // 30
console.log(TestInt.sex); // girl

下面我們來簡單的使用上面定義的內容,來做個簡單的數據庫增刪改查的操作。

1. 在項目中的根目錄下新建一個db.js, 代碼如下:

var mongoose = require('mongoose');
var DB_URL = 'mongodb://localhost:27017/dataDb';

/* 鏈接 */
mongoose.connect(DB_URL);

/* 鏈接成功 */
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的Schema,命名為user.js, 它有如下屬性,如下代碼:

/*
 定義一個user的Schema
*/
var mongoose = require('./db.js');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
 username: { type: String }, // 用戶名
 password: { type: String }, // 密碼
 age: { type: Number }, // 年齡
});

/* model 是由schema生成的模型,具有對數據庫操作的能力 */

module.exports = mongoose.model('User', UserSchema);

3. 數據庫操作,我們新建一個文件叫 app.js

3.1 插入數據(Model.save([fn])),代碼如下:

var User = require('./user.js');
// 插入數據

var user = new User({
 username: 'kongzhi0707',
 password: '123456',
 age: 30
});

user.save(function(err, res) {
 if (err) {
  console.log(err);
 } else {
  console.log(res);
 }
});

然后在命令行中運行app.js ,可以看到如下:

怎么在node中使用Mongoose類庫實現增刪改查操作

然后我們再到本地數據庫中查看數據,可以看到新增一條數據,如下圖所示

怎么在node中使用Mongoose類庫實現增刪改查操作

從數據庫中可以看到插入數據成功了;

3.2 更新數據(Model.update(conditions, doc, [options], [callback]))

conditions: 更新的條件,該值是一個對象。
doc: 需要更新的內容,該值也是一個對象。
options: 可選參數,它有如下屬性:
safe :(布爾型)安全模式(默認為架構中設置的值(true))
upsert :(boolean)如果不匹配,是否創建文檔(false)
multi :(boolean)是否應該更新多個文檔(false)
runValidators:如果為true,則在此命令上運行更新驗證程序。更新驗證器根據模型的模式驗證更新操作。
strict:(布爾)覆蓋strict此更新的選項
overwrite: (布爾)禁用只更新模式,允許您覆蓋文檔(false)
callback: 回調函數

如下代碼執行更新:

var User = require('./user.js');

// 更新數據 

function update() {
 // 更新數據的條件查詢
 var wherestr = {'username': 'kongzhi0707'};

 // 執行更新數據
 var updatestr = {'password': 'abcdef'};

 User.update(wherestr, updatestr, function(err, res) {
  if (err) {
   console.log(err);
  } else {
   console.log(res);
  }
 });
}
// 調用更新函數
update();

運行app.js 后,如下圖所示:

怎么在node中使用Mongoose類庫實現增刪改查操作

繼續查看數據庫,可以看到password字段被更新了,如下圖所示:

怎么在node中使用Mongoose類庫實現增刪改查操作

3.3 findByIdAndUpdate(id, [update], [options], [callback]);

根據id進行更新;此id就是數據庫中自動生成的id;如下代碼,

var User = require('./user.js');

// 更新數據 

function update() {
 // 更新數據的條件查詢
 var id = '5b3a4941ca11752732fee772';

 // 執行更新數據
 var updatestr = {'password': 'vvvvv'};

 User.findByIdAndUpdate(id, updatestr, function(err, res) {
  if (err) {
   console.log(err);
  } else {
   console.log(res);
  }
 });
}
// 調用更新函數
update();

如下圖數據庫顯示如下:

怎么在node中使用Mongoose類庫實現增刪改查操作

3.4 刪除 Model.remove(conditions, [callback])

代碼如下:

var User = require('./user.js');

function del() {
 // 刪除數據的條件
 var wherestr = {'username': 'kongzhi0707'};

 User.remove(wherestr, function(err, res) {
  if (err) {
   console.log(err);
  } else {
   console.log(res);
  }
 });
}
// 調用函數
del();

到數據庫中查看數據,可以看到沒有這條數據了;

3.5 條件查詢 Model.find(conditions, [fields], [options], [callback]);

如下代碼所示:

var User = require('./user.js');
function find() {
 // 刪除數據的條件
 var wherestr = {'userName': '龍恩0707'};

 User.find(wherestr, function(err, res) {
  if (err) {
   console.log(err);
  } else {
   console.log(res);
  }
 });
}
// 調用函數
find();

執行后,如下所示:

怎么在node中使用Mongoose類庫實現增刪改查操作

3.6 數量查詢 Model.count(conditions, [callback])

var User = require('./user.js');

function getCountByConditions() {

 User.count({}, function(err, res) {
  if (err) {
   console.log(err);
  } else {
   console.log(res); // 會輸出數據庫數據的數量
  }
 });
}
// 調用函數
getCountByConditions();

看完上述內容,你們掌握怎么在node中使用Mongoose類庫實現增刪改查操作的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

油尖旺区| 东台市| 九江县| 靖州| 镇远县| 贵州省| 瓮安县| 浦北县| 綦江县| 诏安县| 酉阳| 五莲县| 临猗县| 贞丰县| 兴化市| 汉中市| 舒兰市| 威远县| 科技| 高青县| 武胜县| 广元市| 方山县| 绥宁县| 临高县| 海门市| 南安市| 资讯| 阿克陶县| 峨山| 青龙| 弥勒县| 赤城县| 马关县| 沈丘县| 汶上县| 杭锦旗| 张掖市| 吉安县| 北辰区| 汶川县|