mongoose操作笔记
一、mongoose文档地址:
https://cn.mongoosedoc.top/docs/api.html#update_update
https://www.cnblogs.com/web-fengmin/p/6435681.html
二、mongoose连接数据库
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/studentmange', {
autoIndex: false,
useNewUrlParser: true
})
mongoose.set('useCreateIndex', true);
var db = mongoose.connection
db.once('open', function(callback) {
console.log('数据库链接成功');
})
module.exports = db
三、定义schema和创建实例对象(可以用new或者create两种方法)
var mongoose = require('mongoose');
var courseSchema = new mongoose.Schema({
"cid": Number,
"name": String,
"students": [Number]
})
courseSchema.index({"cid": })
courseSchema.statics.addStudent = function(courses, sid, callback) {
console.log('插入课程开始', courses, sid)
for(var i=; i< courses.length; i++) {
Course.update({"cid": courses[i]}, {$push: {"student": sid}}, function() {
console.log('课程添加报名成功')
})
}
}
var Course = mongoose.model('Course', courseSchema)
var course1 = new Course({
"cid": ,
"name": "地理",
"students": []
})
course1.save()
Course.create({"cid": ,
"name": "数学",
"students": []
})
module.exports = Course
四、结合node.js做CURD 和 DAO层的封装
exports.add = function(req, res, next) {
Student.create(req.query, function() {
console.log('插入学生成功')
res.send('success')
Course.addStudent(req.query.courses, req.query.sid, function() {
console.log('插入课程成功');
})
})
}
exports.getAll = function(req, res, next) {
Student.find({}, function(err, result) {
res.send(result)
})
}
exports.query = function(req, res, next) {
Student.findOne({"sid": req.query.sid}, function(err, result) {
console.log(result, 'query')
res.send(result)
})
}
exports.edit = function(req, res, next) {
console.log('更新 id ', req.query.sid)
Student.update({"sid": req.query.sid},{ $set: req.query}, function(err) {
res.send('修改成功')
})
}
exports.remove = function(req, res, next) {
console.log('删除 id '+ req.query.sid)
Student.remove({"sid": req.query.sid}, function(err) {
res.send('删除成功')
})
}
五、常用的操作运算符:
$set $lt $gt $push $pull
===end 替他具体的细节看文档吧===
mongoose操作笔记的更多相关文章
- Centos7系统下修改主机名操作笔记
习惯了在Centos6系统下修改主机名的操作,但是Centos7下修改主机名的操作却大不相同!操作笔记如下: 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient) ...
- mongodb学习(3)--- NodeJs使用mongoose操作mongodb
转载: https://cnodejs.org/topic/50c145ed637ffa4155c7eaee 首先对于以下错误说明(有写 db.close): Error: db object alr ...
- C语言 字符串操作 笔记
/* C语言字符串的操作笔记 使用代码和注释结合方式记录 */ # include <stdio.h> # include <string.h> int main(void) ...
- node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)
最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. Mongoose是在node.js ...
- mongoose 操作 mongodb 笔记 (自己的笔记,自己看的)
mongodb下载/安装 mongoose npm install --save mongoose mongoose 数据库连接 const mongoose = require('mongoos ...
- Mongoose学习笔记
#名词解释: Schema 一种以文件形式存储的数据库模型骨架,不具备对数据库操作的能力 Model 由Schema生成的模型,具有抽象属性和行为,能够操作数据库 Entity 由Model创建的实体 ...
- mongoose学习笔记1--基础知识1
今天我们将学习Mongoose,什么是Mongoose呢,它于MongoDB又是什么关系呢,它可以用来做什么呢? MongoDB是一个开源的NoSQL数据库,相比MySQL那样的关系型数据库,它更显得 ...
- mongoose学习笔记1--基础知识2
Schema简述 Schema —— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型(传统 ...
- Oracle 日常应用和操作笔记
简单整理oracle日常应用笔记. 1.采用excel表格中的数据直接粘贴数据库记录中,默认会在后面加一个空格“”,操作完成后一定要记得对空格匹配然后修改一下. 2.查询数据库里的所有表结构, 采用s ...
随机推荐
- [JZOJ5400]:Repulsed(贪心+树形DP)
题目描述 小$w$心里的火焰就要被熄灭了. 简便起见,假设小$w$的内心是一棵$n-1$条边,$n$个节点的树. 现在你要在每个节点里放一些个灭火器,每个节点可以放任意多个. 接下来每个节点都要被分配 ...
- Java 注解指导手册(上)
编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它. 我们已经在Java Code Geeks提供了丰富的教程, 如Creating Your Own Java A ...
- C++入门经典-例7.10-运算符的重载,重载加号运算符
1:曾经介绍过string类型的数据,它是C++标准模版库提供的一个类.string类支持使用加号“+”连接两个string对象.但是使用两个string对象相减确实非法的,其中的原理就是C++所提供 ...
- Python 之 try...except...错误捕捉
Python常见异常类型大概分为以下类: 1.AssertionError:当assert断言条件为假的时候抛出的异常 2.AttributeError:当访问的对象属性不存在的时候抛出的异常 3.I ...
- VisualVM通过密码JMX远程连接JVM
如果本地安装了JDK,则在${java.home}/bin/下可找到jvisualvm.exe,双击打开即可使用.否则,去官网下载一个,解压即可使用.现有一个springboot程序springboo ...
- Nginx OCSP
#开启 vim /path/to/path/conf/nginx.conf ..... events{ ...... 省略..... } http { ..... server{ listen 44 ...
- 使用 joblib 对 Pandas 数据进行并行处理
使用 joblib 对 Pandas 数据进行并行处理 如果需要对一个很大的数据集进行操作,而基于一列数据生成新的一列数据可能都需要耗费很长时间. 于是可以使用 joblib 进行并行处理. 假设我们 ...
- ojdbc15-10.2.0.4.0.jar maven 引用报错 Dependency 'com.oracle:ojdbc15:10.2.0.4.0' not found
ojdbc15-10.2.0.4.0.jar maven 引用报错 问题现象 在 Maven 工程中引用 ojdbc15-10.2.0.4.0.jar 报错,报错信息:Dependency 'com. ...
- 面向对象编程(oop)的变迁
作者:匿名用户链接:https://www.zhihu.com/question/34018003/answer/132740170来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 人性化的Requests模块(响应与编码、header处理、cookie处理、重定向与历史记录、代理设置)
Requests库是第三方模块,需要额外进行安装.Requests是一个开源库 pip install requests 去GitHub下载回来,进入解压文件,运行setup.py 比urllib2实 ...