一、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操作笔记的更多相关文章

  1. Centos7系统下修改主机名操作笔记

    习惯了在Centos6系统下修改主机名的操作,但是Centos7下修改主机名的操作却大不相同!操作笔记如下: 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient) ...

  2. mongodb学习(3)--- NodeJs使用mongoose操作mongodb

    转载: https://cnodejs.org/topic/50c145ed637ffa4155c7eaee 首先对于以下错误说明(有写 db.close): Error: db object alr ...

  3. C语言 字符串操作 笔记

    /* C语言字符串的操作笔记 使用代码和注释结合方式记录 */ # include <stdio.h> # include <string.h> int main(void) ...

  4. node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)

    最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. Mongoose是在node.js ...

  5. mongoose 操作 mongodb 笔记 (自己的笔记,自己看的)

    mongodb下载/安装 mongoose   npm install --save mongoose mongoose 数据库连接 const mongoose = require('mongoos ...

  6. Mongoose学习笔记

    #名词解释: Schema 一种以文件形式存储的数据库模型骨架,不具备对数据库操作的能力 Model 由Schema生成的模型,具有抽象属性和行为,能够操作数据库 Entity 由Model创建的实体 ...

  7. mongoose学习笔记1--基础知识1

    今天我们将学习Mongoose,什么是Mongoose呢,它于MongoDB又是什么关系呢,它可以用来做什么呢? MongoDB是一个开源的NoSQL数据库,相比MySQL那样的关系型数据库,它更显得 ...

  8. mongoose学习笔记1--基础知识2

    Schema简述 Schema —— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型(传统 ...

  9. Oracle 日常应用和操作笔记

    简单整理oracle日常应用笔记. 1.采用excel表格中的数据直接粘贴数据库记录中,默认会在后面加一个空格“”,操作完成后一定要记得对空格匹配然后修改一下. 2.查询数据库里的所有表结构, 采用s ...

随机推荐

  1. linux内核中的数据结构

    http://vinllen.com/linuxnei-he-zhong-de-shu-ju-jie-gou/ https://zhuanlan.zhihu.com/p/58087261 https: ...

  2. Robot Framework自动化测试(一)--- 安装

    所需环境: 1.python 2.robotframework https://pypi.python.org/pypi/robotframework/2.8.5#downloads 3.wxPyth ...

  3. Android新项目GBSS:第1篇 搭建开发环境

    最近接手一个Android新项目,之前也没做过这方面的开发,算是边学边干,这两天看了一下Android开发的书,大致入门了一点,今天把所需要的软件都下了下来,准备开工,先列一下开发环境: 所有的软件都 ...

  4. Winform使用ML.NET时无法加载 DLL“CpuMathNative”问题的解决方法

    同样的代码运行在netcore下可以,运行在winform中就出现错误: 引发的异常:“System.DllNotFoundException”(位于 Microsoft.ML.Data.dll 中) ...

  5. Access denied for user XX

    解决方法:将pom.xml中的mysql-connector-java降低版本(直接去maven仓库复制:https://mvnrepository.com/),比如: <!-- https:/ ...

  6. java最常见的5个错误

    1. Null 的过度使用 避免过度使用 null 值是一个最佳实践.例如,更好的做法是让方法返回空的 array 或者 collection 而不是 null 值,因为这样可以防止程序抛出 Null ...

  7. CentOS 升级至指定版本

    CentOS系统下用yum upgrade命令只能升级到最新版本,CentOS仓库并不维护历史版本,所以只能使用 vault.centos.org 历史版本快照进行更新.本文以将7.0.1406升级到 ...

  8. jinja2渲染使用

    说明:通过jinja2渲染后只能打印出来效果,目前无法保存 例1:渲染 .j2 文件 1.安装jinja2模块 pip3 install jinja2 2.定义模板 说明:变量必须是小写,大写有的情况 ...

  9. 比较Json.Net和fastJson的效率

    var zoo1 = new zoo(); zoo1.animals = new List<animal>(); zoo1.animals.Add(new cat()); zoo1.ani ...

  10. golang struct结构体初始化的几种方式

    type User struct { Id int `json:"id" orm:"auto"` // 用户名 Username string `json:&q ...