1.添加方法 create(doc(s),[callback])
var mongoose=require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); //數據庫打開的監聽事件 mongoose.connection.once("open",function(){ console.log("數據庫連接成功~~~"); }); //數據庫關閉的監聽事件 mongoose.connection.once("close",function(){ console.log("數據庫已斷開~~~"); }); //創建Schema 對象 var Schema =mongoose.Schema; var stuSchema=new Schema({ name:String, age:Number, gender:{//數據類型是String,默認值是 female type:String, default:"female" }, address:String }); /** * 有了Model,我們就可以來對數據庫進行增刪改查的操作了 */ var StuModel =mongoose.model("students",stuSchema); /** * Model.create(doc(s),[callback]) * 用來創建一個或多個文檔並添加到數據庫中 * 參數: * doc(s) 可以是一個文檔對象,也可以是一個文檔的數組 * callback 當操作完成以后調用的回調函數 ,回調函數可以省略不寫 */ StuModel.create([ { name:"豬八戒", age:28, gender:"male", address:"高老庄" },{ name:"唐僧", age:16, gender:"male", address:"女兒國" } ],function(err){ if(!err){ console.log("插入成功!"); } });
2.查詢方法
/** * 查詢所有符號條件的文檔 * Model.find(conditions,[projection],[options],[callback]) * 根據文檔的id屬性查詢文檔 * Model.findById(id,[projection],[options],[callback]) * 查詢符合條件的第一個文檔 * Model.findOne([conditions],[projection],[options],[callback]) * * conditions 查詢的條件 * projection 投影 * options 查詢選項(skip limit) * callback 回調函數,查詢結果會通過回調函數返回 * 回調函數必須傳,如果不傳回調函數,壓根不會查詢 */ StuModel.find({name:"唐僧"},function(err,docs){ if(!err){ console.log(docs); } });
- 投影(投影有兩種方式)
//投影 StuModel.find({},{name:1,_id:0},function(err,docs){ if(!err){ console.log(docs); } });
投影也可以這樣寫(-_id表示不顯示):
StuModel.find({},"name age -_id",function(err,docs){ if(!err){ console.log(docs); } });
-
跳過 skip
//跳過 StuModel.find({},"name age -_id",{skip:3},function(err,docs){ if(!err){ console.log(docs); } });
-
顯示數量 limit
//跳過 StuModel.find({},"name age -_id",{skip:2,limit:1},function(err,docs){ if(!err){ console.log(docs); } });
- 查詢一個文檔 findOne()
//查詢一個StuModel.findOne({name:"孫悟空"},function(err,doc){if(!err){console.log(doc);}});
- 通過Id查詢一個文檔 findById()
//通過Id查詢一個文檔 StuModel.findById("6014aa020e3c7334146e06a6",function(err,doc){ if(!err){ console.log(doc); } });
注意:通過find()查詢的結果,返回的對象,就是Document,文檔對象
Document對象是Model的實例
比如:doc就是StuModel的對象。
//檢查是否是實例 console.log(doc instanceof StuModel);
3.修改
var mongoose=require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); //數據庫打開的監聽事件 mongoose.connection.once("open",function(){ console.log("數據庫連接成功~~~"); }); //數據庫關閉的監聽事件 mongoose.connection.once("close",function(){ console.log("數據庫已斷開~~~"); }); //創建Schema 對象 var Schema =mongoose.Schema; var stuSchema=new Schema({ name:String, age:Number, gender:{//數據類型是String,默認值是 female type:String, default:"female" }, address:String }); /** * 有了Model,我們就可以來對數據庫進行增刪改查的操作了 */ var StuModel =mongoose.model("students",stuSchema); /** * 用來修改一個或多個文檔 * Model.update(conditions,doc,[options],[callback]) * 用來修改一個文檔 * Model.update(conditions,doc,[options],[callback]) * 用來修改多個文檔 * Model.update(conditions,doc,[options],[callback]) * * 參數: * conditions 查詢條件 * doc 修改后的對象 * options 配置參數 * callback 回調函數 */ StuModel.updateOne({name:"孫悟空"},{$set:{age:100}},function(err){ if(!err){ console.log("修改成功~"); } });
4.刪除(一般不會用,實際開發中或設計邏輯刪除字段)
var mongoose=require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); //數據庫打開的監聽事件 mongoose.connection.once("open",function(){ console.log("數據庫連接成功~~~"); }); //數據庫關閉的監聽事件 mongoose.connection.once("close",function(){ console.log("數據庫已斷開~~~"); }); //創建Schema 對象 var Schema =mongoose.Schema; var stuSchema=new Schema({ name:String, age:Number, gender:{//數據類型是String,默認值是 female type:String, default:"female" }, address:String }); /** * 有了Model,我們就可以來對數據庫進行增刪改查的操作了 */ var StuModel =mongoose.model("students",stuSchema); /** * 刪除一個或多個文檔 * Model.remove(conditions,[callback]) * 刪除一個文檔 * Model.deleteOne(conditions,[callback]) * 刪除多個文檔 * Model.deleteMany(conditions,[callback]) */ //1.查看 StuModel.findOne({name:"豬八戒"},function(err,doc){ if(!err){ console.log(doc); } }) //2.刪除 StuModel.remove({name:"豬八戒"},function(err){ if(!err){ console.log("刪除成功~"); } }); //3.在查看 StuModel.findOne({name:"豬八戒"},function(err,doc){ if(!err){ console.log(doc); } })
5.統計文檔數量
var mongoose=require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); //數據庫打開的監聽事件 mongoose.connection.once("open",function(){ console.log("數據庫連接成功~~~"); }); //數據庫關閉的監聽事件 mongoose.connection.once("close",function(){ console.log("數據庫已斷開~~~"); }); //創建Schema 對象 var Schema =mongoose.Schema; var stuSchema=new Schema({ name:String, age:Number, gender:{//數據類型是String,默認值是 female type:String, default:"female" }, address:String }); /** * 有了Model,我們就可以來對數據庫進行增刪改查的操作了 */ var StuModel =mongoose.model("students",stuSchema); /** * 統計符合查詢條件的文檔的數量 * Model.count(conditions,[callback]) */ StuModel.count({},function(err,count){ if(!err){ console.log(count); } });