(二)連線資料庫使用Model物件對資料庫進行操作(CRUD)
阿新 • • 發佈:2018-11-19
var mongoose = require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); mongoose.connection.once("open",function () { console.log("資料庫連線成功~~~"); }); var Schema = mongoose.Schema; var stuSchema = new Schema({ name:String, age:Number, gender:{ type:String, default:"female" }, address:String }); var StuModel = mongoose.model("student" , stuSchema); /* - 有了Model,我們就可以來對資料庫進行增刪改查的操作了 Model.create(doc(s), [callback]) - 用來建立一個或多個文件並新增到資料庫中 - 引數: doc(s) 可以是一個文件物件,也可以是一個文件物件的陣列 callback 當操作完成以後呼叫的回撥函式 查詢的: Model.find(conditions, [projection], [options], [callback]) - 查詢所有符合條件的文件 總會返回一個數組 Model.findById(id, [projection], [options], [callback]) - 根據文件的id屬性查詢文件 Model.findOne([conditions], [projection], [options], [callback]) - 查詢符合條件的第一個文件 總和返回一個具體的文件物件 conditions 查詢的條件 projection 投影 需要獲取到的欄位 - 兩種方式 {name:1,_id:0} "name -_id" options 查詢選項(skip limit) {skip:3 , limit:1} 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); } });*/ /*StuModel.find({},"name age -_id", {skip:3 , limit:1} , function (err , docs) { if(!err){ console.log(docs); } });*/ /*StuModel.findOne({} , function (err , doc) { if(!err){ console.log(doc); } });*/ /*StuModel.findById("59c4c3cf4e5483191467d392" , function (err , doc) { if(!err){ //console.log(doc); //通過find()查詢的結果,返回的物件,就是Document,文件物件 //Document物件是Model的例項 console.log(doc instanceof StuModel); } });*/ /*StuModel.create([ { name:"沙和尚", age:38, gender:"male", address:"流沙河" } ],function (err) { if(!err){ console.log(arguments); } });*/ /* 修改 Model.update(conditions, doc, [options], [callback]) Model.updateMany(conditions, doc, [options], [callback]) Model.updateOne(conditions, doc, [options], [callback]) - 用來修改一個或多個文件 - 引數: conditions 查詢條件 doc 修改後的物件 options 配置引數 callback 回撥函式 Model.replaceOne(conditions, doc, [options], [callback]) * */ //修改唐僧的年齡為20 /*StuModel.updateOne({name:"唐僧"},{$set:{age:20}},function (err) { if(!err){ console.log("修改成功"); } });*/ /* 刪除: Model.remove(conditions, [callback]) Model.deleteOne(conditions, [callback]) Model.deleteMany(conditions, [callback]) */ /*StuModel.remove({name:"白骨精"},function (err) { if(!err){ console.log("刪除成功~~"); } });*/ /* Model.count(conditions, [callback]) - 統計文件的數量的 */ StuModel.count({},function (err , count) { if(!err){ console.log(count); } });