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 ...
随机推荐
- Keras学习笔记一:修改数据读入方式为本地图片读入
第一种方法: Keras官方给的图片去噪示例要自动下载mnist数据集并处理,不能修改和加入自己的数据集. from keras.datasets import mnist (x_train, _), ...
- SRS之播放推流视频
1. 综述 首先,推流直播的配置文件如下: # rtmp.conf listen 1935; max_connections 1000; daemon off; srs_log_tank consol ...
- Oracle 中使用正则表达式
Oracle使用正则表达式离不开这4个函数: 1.regexp_like select t3.cert_no from table_name t3 where regexp_like(t3.cert_ ...
- css样式重置表
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, ...
- SV服务器
什么是服务端? 就是安装了服务端软件的电脑 下载 VisualSVN是一款图形化svn服务器. 官 网: http://www.visualsvn.com/server/ 下载地址: http://w ...
- regsvr32 错误解决方案
regsvr32对dll进行注册时报错,0x80070005表示权限不够,虽然是以管理员身份登录,但是仍然需要如下操作: 在运行命令提示符的时候,请右击 命令提示符 选 以管理身份运行.
- php中应用redis
下载软件包wget https://codeload.github.com/phpredis/phpredis/zip/develop mv develop phpredis.zip 解压unzip ...
- axios的中文使用文档
axios 基于promise用于浏览器和node.js的http客户端 原文链接 lewis1990@amoy 特点 支持浏览器和node.js 支持promise 能拦截请求和响应 能转换请求和响 ...
- 关于 About
关于我 我是 Ivy,目前武汉大学 GIS 专业在读硕士研究生,业余渣程序媛. 写了一些不起眼的代码(参看我的 GitHub),做了一些不起眼的小研究(参看我的 ResearchGate). 关于本站 ...
- 谷歌云服务器XShell登录
一,谷歌云服务器,默认用浏览器进行SSH链接,而且也不告知密码.以Centos为例,先使用浏览器连接 1,给root修改密码 sudo passwd root 2,编辑ssh配置文件 sudo nan ...