//首先要在WebStorm中連接到數據庫
var mongoose = require("mongoose");
mongoose.connect('mongodb://localhost:27017/mongoose_test',{useNewUrlParser: true});
mongoose.connection.once("open",function () {
console.log("數據庫連接成功")
});
//創建Schema 模式對象
var Schema = mongoose.Schema;
var stuSchema = new Schema ({
name:String,
age:Number,
address:String,
gender:{
type:String,
default:"female"
},
})
var StuModel = mongoose.model("student",stuSchema)
一、增 創建一個或多個文檔
Model.create(doc(s),[callback]) 類insert
callback 回調函數 ; argument 查看插入文檔
StuModel.create([
{
name:"沙和尚",
gender:"male",
address:"流沙河"
}
]
,function(err){
if(!err){
console.log(arguments)
}
})
二、查
參數:[conditions] 查詢條件
[projection] 投影
[options] 查詢選項(limit skip sort)
[callback] 回調函數必須傳
1.Model.find()
//返回的是一個數組
StuModel.find({name:"唐僧"},function (err,docs) {
if(!err){
console.log(docs);
}
})
//"name -_id"只顯示name,不顯示_id,注意用空格分隔
StuModel.find({},"name -_id",function (err,docs) {
if(!err){
console.log(docs);
}
})
//查詢選項在function前插入
StuModel.find({},"name -_id",{skip:2,limit:1},function (err,docs) {
if(!err){
console.log(docs);
}
})
2.Model.findOne() ,結果是一個文檔對象
//.name只顯示名字
StuModel.findOne({},"name -_id",function (err,doc) {
if(!err){
console.log(doc.name);
}
})
3.Model.findById(),通過Id查詢
StuModel.findById("5d4fe9f97a5fba256c45d2b6",function (err,docs) {
if(!err){
console.log(docs);
}
})
//檢查doc是否StuModel 的一個實例
StuModel.findById("5d4fe9f97a5fba256c45d2b6",function (err,doc) {
if(!err){
console.log(doc instanceof StuModel);
}
})
三、修改 Model.update() ;Model.replaceOne()
StuModel.updateOne({name:"唐僧"},{$set:{age:20}},function (err) {
if (!err) {
console.log("修改成功");
}
})
四、刪除
Model.deleteOne();Model.deleteMany();Model.remove()
StuModel.deleteOne({name:"豬八戒"},function (err) {
if(!err){
console.log("刪除成功")
}
})
五、查詢文檔數量
StuModel.count({ },function (err, Acount) {
if(!err){
console.log(Acount)
}
})