//首先要在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)
}
})