詳解Nodejs基于mongoose模塊的增刪改查的操作
MongoDB
MongoDB是基于Javascript語言的數(shù)據(jù)庫,存儲格式是JSON,而Node也是基于JavaScript的環(huán)境(庫),所以node和mongoDB的搭配能減少因為數(shù)據(jù)轉換帶來的時間空間開銷。
Mongoose
是MongoDB的一個對象模型工具,它將數(shù)據(jù)庫中的數(shù)據(jù)轉換為JavaScript對象以供你在應用中使用,封裝了MongoDB對文檔的的一些增刪改查等常用方法,讓NodeJS操作Mongodb數(shù)據(jù)庫變得更加靈活簡單。
安裝模塊mongoose
npm install mongoose
[注意] mongoose模塊依賴mongodb
npm常用命令
npm install <name> -g 將包安裝到全局環(huán)境中 npm install <name> –-save 安裝的同時,將信息寫入package.json中,便于后期維護查看 npm remove <name>移除 npm update <name>更新 npm root -g 查看全局的包安裝路徑 npm -v 查看npm的版本
開啟mongodb數(shù)據(jù)庫
進入mongod所在目錄 執(zhí)行命令 ./mongod --dbpath=存放數(shù)據(jù)的位置
例1:./mongod --dbpath=../data/dbname
例2:./mongod --dbpath=../data/dbname --port 自定義端口號,默認27017(了解即可,不推薦使用,修改默認端口號后期維護麻煩)
插入數(shù)據(jù)
// 引入模塊
var mongoose = require('mongoose');
// 連接數(shù)據(jù)庫
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// 設置數(shù)據(jù)類型
var monSchema = new mongooose.Schema({
name:{type:String,default:"username"},
age:{type:Number},
sex:{type:String}
});
// 選擇集合
var monModel = db.model('user',monSchema);
// 數(shù)據(jù)集
var content = {name:"Nick",age:23,sex:'男'};
// 實例化對象并插入數(shù)據(jù)
var monInsert = new monModel(content);
monInsert.save(function(err){
if(err){
console.log(err);
}else{
console.log('成功插入數(shù)據(jù)');
}
db.close();
});
刪除數(shù)據(jù)
// 引入模塊
var mongoose = require('mongoose');
// 連接數(shù)據(jù)庫
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// 設置數(shù)據(jù)類型
var monSchema = new mongooose.Schema({
name:{type:String,default:"name"},
age:{type:Number},
sex:{type:String}
});
// 選擇集合
var monModel = db.model('user',monSchema);
// 要刪除的條件
var del = {name:"Nick"};
monModel.remove(del,function(err,result){
if(err){
console.log(err);
}else{
console.log("update");
}
db.close();
});
修改數(shù)據(jù)
// 引入模塊
var mongoose = require('mongoose');
// 連接數(shù)據(jù)庫
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// cosole.log(db);
// 設置數(shù)據(jù)類型
var monSchema = new mongooose.Schema({
name:{type:String,default:"name"},
age:{type:Number},
sex:{type:String}
});
// 選擇集合
var monModel = db.model('user',monSchema);
// 原數(shù)據(jù)字段值
var oldValue = {name:"Nick"};
// 單條件更新
var newData1 = {$set:{name:"內容"}};
// 多條件更新
var newData2 = {$set:{name:"內容",age:2}};
monModel.update(oldValue,newData,function(err,result){
if(err){
console.log(err);
}else{
console.log("update");
}
db.close();
});
查詢數(shù)據(jù)
// 引入模塊
var mongoose = require('mongoose');
// 連接數(shù)據(jù)庫
var db = mongoose.createConnection('mongodb://127.0.0.1:27017/test');
// cosole.log(db);
// 設置數(shù)據(jù)類型
var monSchema = new mongooose.Schema({
name:{type:String,default:"name"},
age:{type:Number},
sex:{type:String}
});
// 選擇集合
var monModel = db.model('user',monSchema);
var content = {name:"姓名2"};
var field = {name:1,age:1,sex:1};
monModel.find(content,field,function(err,result){
if(err){
console.log(err);
}else{
console.log(result);
}
db.close();
});
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Node.js中path.join()優(yōu)勢例舉分析
在本篇文章里小編給大家整理的是一篇關于Node.js中path.join()優(yōu)勢例舉分析,有興趣的朋友們可以學習下。2021-08-08
nodejs如何在package.json中設置多條啟動命令
這篇文章主要介紹了nodejs如何在package.json中設置多條啟動命令,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
node.js用fs.rename強制重命名或移動文件夾的方法
本篇文章主要介紹了node.js用fs.rename強制重命名或移動文件夾的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12
Nodejs實現(xiàn)獲取實時數(shù)據(jù)的三種主流方式詳解
這篇文章主要為大家詳細介紹了Nodejs前端獲取實時數(shù)據(jù)的三種主流方式,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02
解決Node.js包管理器安裝報錯npm?ERR!?code?1的問題
在開發(fā)過程中,我們經(jīng)常需要使用各種Node.js包來擴展我們的應用程序功能,這些包通常通過npm(Node.js包管理器)進行安裝和管理,有時候我們可能會遇到一些關于npm的錯誤,本文將詳細介紹如何解決這個問題,并提供一個詳細的實例,需要的朋友可以參考下2024-03-03

