资讯专栏INFORMATION COLUMN

Node+express+mongoose 基础笔记

xioqua / 3367人阅读

本篇文章主要介绍mongoose的一些常用api。
安装数据库连接中间件

npm install mongoose -s

进入mongodb安装目录,找到bin文件夹执行命令

> mongod --dbpath=项目的db路径
 注:每次重新连接之前,需要把 .lock文件删掉

可以去官网下载mongodb可视化的操作工具,操作数据库

https://robomongo.org/download

首先,我们还是需要搭建node + express架构

// 构建express服务器
var express = require("express");
var server = express();
// 采用Promise,判断,先连接数据库成功后启动服务器。
new Promise((resolve,reject)=>{
//连接mongodb
var mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017",(error)=>{
    if(error) {
        console.log("数据库连接失败");
        console.log(error);
    }else {
        console.log("数据库连接成功");
        resolve();
    }
})
}).then(()=>{
    server.listen(8080,"localhost",(req,res)=>{
        console.log("服务器启动 @ localhost:8080");
   })
   // 将数据库的模型操作封装到handleDB js文件中,当服务器启动成功之后,获取db model
的数据
   require("./handleDB");
})

新建js文件handleDB

var mongoose = require("mongoose");
//定义表字段以及字段类型
var userSchema = ({
    username:String,
    password:String,
    age:Number,
    sex:{
        type:String,
        default:"女"
    }
})
// 表的名字 user
const UserModel = mongoose.model("user",userSchema);

插入一条数据

const userModel = new UserModel({
    username:"aaa",
    password:"223434",
    age:22,
    sex:"女"
})

userModel.save().then((result)=>{
    if(result) {
        console.log("一条数据插入成功");
        console.log(result);
    } else {
        console.log("数据保存失败");
    }
});

组装条件查询

//按照条件查询,使用where
UserModel.where({
    username:"aaa"
}).find().then(res=>{
    if(res) {
        console.log("--------------findWhere-------------------");
        console.log(res);
    }
})
//也可以把条件写到find({})里面,实现where同样的效果
UserModel.find({
    username:"aaa"
}).then(res=>{
    if(res) {
        console.log("--------------find()-----------------------");
        console.log(res);
    }
})

根据id查询

UserModel.findById("5acc7d3b948dfe204475d02e").then(res=>{
    if(res) {
        console.log("-------------------findById------------------");
        console.log(res);
    }
})

update操作

/修改操作,修改查询到的第一个
UserModel.update(
    //条件查询
    {age:22},
    {sex:"nvnvnv"}
).then(res=>{
    console.log("---------------------update-----------------")
    console.log(res);
})

UserModel.findByIdAndUpdate("5acc7d3b948dfe204475d02e",{username:"hahaaaaaaaaaaaaaaaaa"})
.then(res=>{
    console.log("-----------findByIdAndUpdate-----------");
    console.log(res);
})

UserModel.findOneAndUpdate({username:"aaa",username:"dh"}).then(res=>{
    if(res) {
        console.log("--------------findOneAndUpdate-----------");
        console.log(res);
    }
})

删除操作

UserModel.remove({username:"aaa2"}).then(res=>{
    if(res) {
        console.log("----------remove0-------------");
        console.log(res);
    }
})

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

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

相关文章

  • Node+express+mongoose 基础笔记

    本篇文章主要介绍mongoose的一些常用api。安装数据库连接中间件 npm install mongoose -s 进入mongodb安装目录,找到bin文件夹执行命令 > mongod --dbpath=项目的db路径 注:每次重新连接之前,需要把 .lock文件删掉 可以去官网下载mongodb可视化的操作工具,操作数据库 https://robomongo.org/download ...

    fizz 评论0 收藏0
  • 基于 Vue2+Node+mongoDB 的前后端分离全栈练手小项目

    摘要:本文源码简介之前刚入门并做好了一个简而全的纯全家桶的项目,数据都是本地模拟请求的详情请移步这里为了真正做到数据库的真实存取,于是又开始入门了并以此来为之前的页面写后台数据接口。 本文源码:Github 简介: 之前刚入门vue并做好了一个简而全的纯vue2全家桶的项目,数据都是本地 json 模拟请求的;详情请移步这里:vue-proj-demo 为了真正做到数据库的真实存取,于是又...

    jay_tian 评论0 收藏0
  • node 学习笔记(3)--Express

    摘要:执行安装依赖项,然后执行启动程序。模板的内容保存在内存中,性能会得到显著提升。视图查找当或被调用时,会先检查是否有文件在这个绝对路径上。代码清单修改了之前的实现,给出照片被上传时提供的名称,比如 Express起步 安装ExpressshowImg(https://segmentfault.com/img/bVXsFT?w=800&h=44); 一个最小的Express 程序showI...

    lewif 评论0 收藏0
  • 初尝node.js + Express + MongoDB + Vue.js 项目构建(2)

    摘要:使用内在模块发送响应数据监听端口终端打印如下信息使用框架本项目使用的框架来起服务器。数据库中文档每一行的数据的数据结构和基本一样,所有存储在集合中的数据都是格式,是一种类的一种二进制形式的存储格式,简称。 前言 经过上一篇经济基础构建的完成,那么现在正式开始码代码吧! 项目架构 showImg(https://segmentfault.com/img/bVNkQM?w=322&h=58...

    kevin 评论0 收藏0

发表评论

0条评论

xioqua

|高级讲师

TA的文章

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