nodeJS中使用mongoose模块操作mongodb数据库
在实际运用中,对于数据库的操作我们不可能一直在cmd命令行中进行操作,一般情况下需要在node环境中来操作mongodb数据库,这时就需要引入mongoose模块来对数据库进行增删改查等操作。
首先,启动数据库服务:
mongod --dbpath (db文件夹路径)
然后安装mongoose模块:
npm install mongoose -S
app.js文件:
 const mongoose = require('mongoose')
 // 连接数据库:如果不存在指定数据库文件则会自动创建(该方法会返回一个promise对象)
 mongoose.connect('mongodb://localhost:27017/project',{
     useNewUrlParser:true,
     useUnifiedTopology:true
 }).then( async ()=>{
     console.log('数据库连接成功');
 }.catch(()=>{
     console.log('数据库连接失败');
 })
创建模型:(代码均在.then回调函数中执行)
// 先定义数据库中集合的数据格式
let studentSchema = new mongoose.Schema({ // 表示数据库中集合的数据有 name sex age
name:{type:String,require:true},
sex:{type: String},
age:{type: Number,require: true}, // require属性决定该类型数据是否必须存在集合中,为true则必须存在
className:{type: String,default:'中二班'} //default属性设置默认值
})
let Student = mongoose.model("class1",studentSchema) // 简写
let Student = mongoose.model('class1',new mongoose.Schema({
name:String,
sex:String,
age:Number
}))
添加数据
//向集合中插入一条数据 create函数返回的是一个 promise
let result1 = await Student.create({
name:'张三',
sex:'男',
age:20
})
console.log(result1); //向集合中插入多条数据
Student.create([
{
name:'小海',
sex:'男',
age:21
},
{
name:'小菲',
sex:'女',
age:20
},
{
name:'小明',
sex:'男',
age:23
}
])
查询数据
//查询集合中的数据 find函数返回的是一个 promise
let result2 = await Student.find({name:'张三'})
console.log(result2);
删除数据
//删除集合中的一条数据 deleteOne函数返回的也是一个promise
let result3 = await Student.deleteOne({name:'张三'})
console.log(result3); //删除集合中的多条数据 deleteMany函数返回一个promise
let result4 = await Student.deleteMany({name:"张三"})
console.log(result4);
修改数据
//更新一条集合中的数据 updateOne函数返回一个promise
let result5 = await Student.updateOne({name:'小菲'},{$set:{name:'小红'}},)
console.log(result5); //更新多条集合中的数据 updateMany函数返回一个promise
let result6 = await Student.updateMany({name:"小菲"},{$set:{name:'菲菲'}})
console.log(result6);
nodeJS中使用mongoose模块操作mongodb数据库的更多相关文章
- mongoose之操作mongoDB数据库
		
mongoose是node.js操作mongoDB数据库的一种工具,借助于mongoose,我们可以便捷的完成一些数据库的基本操作,基本使用如下: 1.安装 npm install mongoose ...
 - Node.js使用Mongoose包操作MongoDB数据库
		
1. 安装Mongoose npm install mongoose 2. 使用 2.1 创建连接 var mongoose = require('mongoose'); mongoose.conne ...
 - NodeJs连接操作MongoDB数据库
		
NodeJs连接操作MongoDB数据库 一,介绍 MongoDB是一种文档导向数据库管理系统,由C++撰写而成.介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作. Mongo ...
 - mongodb replica set  和 nodejs中使用mongoose连接replica
		
一.mongodb replication 介绍 官网上的第一句话就是Replication is the process of synchronizing data across multiple ...
 - 二十六、Nodejs 操作 MongoDb 数据库
		
一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...
 - C# Asp.net中简单操作MongoDB数据库(二)
		
C# Asp.net中简单操作MongoDB数据库(一) , mongodb数据库连接可以回顾上面的篇幅. 1.model类: public class BaseEntity { /// < ...
 - C# Asp.net中简单操作MongoDB数据库(一)
		
需要引用MongoDB.Driver.dll.MongoDB.Driver.core.dll.MongoDB.Bson.dll三个dll. 1.数据库连接: public class MongoDb ...
 - NodeJS操作MongoDB数据库
		
一.node.js对于mongodb的基本操作 1.数据库的开机 首先我们要先对数据库进行开机的操作,建立一个文件夹用于存放数据库文档.如D:\mongo,接下去在cmd当中键入命令-> mon ...
 - koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据
		
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
 
随机推荐
- hashMap 底层原理+LinkedHashMap 底层原理+常见面试题
			
1.源码 java1.7 hashMap 底层实现是数组+链表 java1.8 对上面进行优化 数组+链表+红黑树 2.hashmap 是怎么保存数据的. 在hashmap 中有这样一个结构 ...
 - C之静态内存和动态内存
			
静态内存: * 自动申请,自动释放* 大小固定,内存空间连续* 从栈上分配的内存叫静态内存 动态内存: * 程序员自己申请 * new/malloc* 大小取决于虚拟内存的大小,内存空间不连续* ja ...
 - 005-log-slf4j
			
一.概述 SLF4J = Simple Logging Facade for Java. author: Ceki Gülcü SLF4J,即简单日志门面(Simple Logging ...
 - UC浏览器打开百度显示 丰臣吉秀.网址
 - mac 终端杀进程
			
killall 进程名 killall chromedriver 查看进程名的·方法:
 - Mysql使用Java UUID作为唯一值时使用前缀索引测试
			
Mysql可以使用字符串前缀 作为索引 以节约空间. 下面我们以 Java的UUID 生成的 32位(移除UUID中的 中划线)字符串 来做一下 测试. 表结构: CREATE TABLE `test ...
 - Spring Aop(十)——编程式的Pointcut
			
转发地址:https://www.iteye.com/blog/elim-2396526 编程式的Pointcut 除了可以通过注解和Xml配置定义Pointcut之外,其实我们还可以通过程序来定义P ...
 - 通过命令行方式连接redis
			
1.首先安装redis客户端 yum install redis 2.连接 redis-cli -h host -p port -a password host:远程redis服务器host port ...
 - 从字节跳动离职后,拿到探探、趣头条、爱奇艺、小红书、15家公司的 offer【转】
			
前言 博主目前从事Android开发3年,前两年一直在抖音工作.我这篇文章并不是简单的描述一些面试中的题,或者总结一些Android的知识,而是想记录我整个的想法和准备的过程,以及一些心得体会,让大家 ...
 - 【Fiori系列】为什么SAP Fiori活的如此精致
			
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[Fiori系列]为什么SAP Fiori活的如 ...