mongodb和nodejs mongoose使用详解

安装mongodb

首先要安装mongodb,具体安装过程参考菜鸟教程

运行mongodb

因为我是mac,所以以下内容以OS系统为主,Windows系统建议参考菜鸟教程

进入mongodb的bin文件目录下,运行mongod执行文件

sudo ./mongod //以管理员身份运行

然后另开一个命令行,同样进入mongodb的bin文件目录下,运行mongo执行文件,然后便会进入mongodb的shell环境

./mongo
//进入mongodb的shell环境
>2+2
4

在mongodb的shell环境中可以直接操作数据库,语法请参考菜鸟教程
但shell操作比较反人类,我在这里推荐mongodb的GUI软件——Robo 3T,可以自行在官网下载

nodejs中mongodb的API

在nodejs环境中我选择的是mongoose模块

var mongoose=require('mongoose')

mongoose语法

详情请戳mongoose官网

连接数据库

mongoose.connect('mongodb://localhost:27017/test')//test即为存储的数据库名称,如果不存在将会自动生成

定义Schema和model

var CatSchema=mongoose.Schema({
    name:String,
    age:Number
})

var Cat=mongoose.model('Cat',CatSchema)
//也可以合二为一,直接定义model
var Cat=mongoose.model('Cat',{
    name:String,
    age:Number
})
//mongoose.model的第一个参数的字符串加上字母s便是储存在的数据库表单的名称(Cats)
mongoose Schema常用预置类型:
  1. String 字符串
  2. Number 数字
  3. Date 日期
  4. Boolean 布尔值
  5. 和数组结合:[String] [Number]...

创建实例

var kitty=new Cat({
    name:'Kitty',
    age:3
})

插入

kitty.save(function(err,res){
    if(err) console.error(err)
    else console.log(res)//res为保存成功的对象
})

更新

var where={
    name:'Kitty'
}
var update={
    age:4
}

Cat.update(where,update,function(err,res){
    if(err) console.error(err)
    else console.log(res)
})

通过ID查找并更新的方法

Cat.findByIdAndUpdate(whereById,update,function(err,res)){
    if(err) console.error(err)
    else console.log(res)
})

删除

Cat.remove(where,function(err,res))
//通过ID查找并删除
Cat.findByIdAndRomove(where,function(err,res))

查找

Cat.find(where,function(err,res))//res 返回查找到的对象数组

//可以限定输出的内容
var opt={
     name:1//选择输出的值为1,不输出的值为0(其他不指定默认为0)
}
Cat.find(where,opt,function(err,res))

//var where=_id
Cat.findById(where,function(err,res))//res 输出查询到的对象

查询

Cat.count(where,function(err,res))//res输出查询数量

相关推荐