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 ...
随机推荐
- linux内核中的数据结构
http://vinllen.com/linuxnei-he-zhong-de-shu-ju-jie-gou/ https://zhuanlan.zhihu.com/p/58087261 https: ...
- Robot Framework自动化测试(一)--- 安装
所需环境: 1.python 2.robotframework https://pypi.python.org/pypi/robotframework/2.8.5#downloads 3.wxPyth ...
- Android新项目GBSS:第1篇 搭建开发环境
最近接手一个Android新项目,之前也没做过这方面的开发,算是边学边干,这两天看了一下Android开发的书,大致入门了一点,今天把所需要的软件都下了下来,准备开工,先列一下开发环境: 所有的软件都 ...
- Winform使用ML.NET时无法加载 DLL“CpuMathNative”问题的解决方法
同样的代码运行在netcore下可以,运行在winform中就出现错误: 引发的异常:“System.DllNotFoundException”(位于 Microsoft.ML.Data.dll 中) ...
- Access denied for user XX
解决方法:将pom.xml中的mysql-connector-java降低版本(直接去maven仓库复制:https://mvnrepository.com/),比如: <!-- https:/ ...
- java最常见的5个错误
1. Null 的过度使用 避免过度使用 null 值是一个最佳实践.例如,更好的做法是让方法返回空的 array 或者 collection 而不是 null 值,因为这样可以防止程序抛出 Null ...
- CentOS 升级至指定版本
CentOS系统下用yum upgrade命令只能升级到最新版本,CentOS仓库并不维护历史版本,所以只能使用 vault.centos.org 历史版本快照进行更新.本文以将7.0.1406升级到 ...
- jinja2渲染使用
说明:通过jinja2渲染后只能打印出来效果,目前无法保存 例1:渲染 .j2 文件 1.安装jinja2模块 pip3 install jinja2 2.定义模板 说明:变量必须是小写,大写有的情况 ...
- 比较Json.Net和fastJson的效率
var zoo1 = new zoo(); zoo1.animals = new List<animal>(); zoo1.animals.Add(new cat()); zoo1.ani ...
- golang struct结构体初始化的几种方式
type User struct { Id int `json:"id" orm:"auto"` // 用户名 Username string `json:&q ...