资讯专栏INFORMATION COLUMN

mongodb和nodejs mongoose使用详解

ShowerSun / 1686人阅读

摘要:安装首先要安装,具体安装过程参考菜鸟教程运行因为我是,所以以下内容以系统为主,系统建议参考菜鸟教程进入的文件目录下,运行执行文件以管理员身份运行然后另开一个命令行,同样进入的文件目录下,运行执行文件,然后便会进入的环境进入的环境在的环境中可

安装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常用预置类型:

String 字符串

Number 数字

Date 日期

Boolean 布尔值

和数组结合:[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输出查询数量

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19169.html

相关文章

  • 公司项目NODEJS实践0.3[ mongo / session ...]

    摘要:使用,可参考执行退出命令,只要设置,即可。下节主要实现注册时的邮件验证保存登录状态异常处理,同步异步操作全栈工程技术新群上一篇公司项目实践下一篇待续 一、前言 ⋅⋅⋅书接上回,我们搭建了WEB服务端路由、模板等功能,完成了register 通过ajax与后端的通信,今天主要完成数据与mongodb的存取,实现注册 / 登录 / 退出功能 ⋅⋅⋅DEMO GIT https://gi...

    MoAir 评论0 收藏0
  • 阿里云ECS服务器部署Node.js项目全过程详解

    摘要:本文详细介绍如何部署项目到阿里云上,以及本人在部署过程中所遇到的问题坑点和解决办法,可以说是全网最全最详细的教程了。同时讲解了如何申请阿里云免费证书,以及一台服务器配置多网站的配置方法等。优惠券阿里云产品通用代金券最高元。 本文详细介绍如何部署NodeJS项目到阿里云ECS上,以及本人在部署过程中所遇到的问题、坑点和解决办法,可以说是全网最全最详细的教程了。同时讲解了如何申请阿里云免费...

    XboxYan 评论0 收藏0
  • 手把手教你开发nodejs微博网站-连接数据库

    摘要:连接数据库引子博客肯定是以用户为中心,包括用户的注册,用户的登录,用户发表留言,对留言进行评价等等功能,所以,自然离不开数据库。概念解析在中基本的概念是文档集合数据库。这两种方式连接都需要,或者主机名字,数据库名字,端口号,配置项等。 连接数据库 引子 博客肯定是以用户为中心,包括用户的注册,用户的登录,用户发表留言,对留言进行评价等等功能,所以,自然离不开数据库。 MongoDB M...

    waterc 评论0 收藏0
  • nodejs使用mongoose 获取mongodb 数据格式化问题

    摘要:说明在中获取数据,不管使用回调函数还是又或者语法最后得到都是对象,不能直接操作如同普通对象一样得到单行数据。还有就是时间格式化问题,见下面。 说明 在mongodb 中获取数据,不管使用回调函数还是Promise又或者generate 语法最后得到都是mongoose.Query对象,不能直接操作如同普通对象一样得到单行数据。还有就是时间格式化问题,见下面。 下面示例默认使用co 和...

    Ilikewhite 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<