首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

你真的了解mongoose吗?

引言 继上篇文章「Koa2+MongoDB+JWT实战--Restful API最佳实践」,收到许多小伙伴的反馈,表示自己对于mongoose不怎么了解,上手感觉有些难度,看官方文档又基本都是英文(宝宝心里苦...callback Mongoose 中所有传入 callback 的查询,其格式都是 callback(error, result) 这种形式。...new: 布尔值,true 返回更新的数据,false (默认)返回更新前的数据。 fields/select:指定返回的字段。...callback 没找到数据返回 null 更新成功返回更新前的该条数据( {} 形式) options 的 {new:true},更新成功返回更新的该条数据( {} 形式) 没有查询条件,即 filter...为空,则更新第一条数据 findByIdAndUpdate() Model.findByIdAndUpdate(id, update, options, callback) Model.findByIdAndUpdate

41.4K30

mongoose官方文档总结

()连接MongoDB,默认端口27017 操作缓存 就是说不必等待上面的connect连接成功,就可以使用创建的 Mongoose models 禁用缓存,要修改 bufferCommands配置...,mongoose.set(‘bufferCommands’,fasle) 选项 connect 方法也接受 options 参数,这些参数会传入底层 MongoDB 驱动。...:findByIdAndUpdate Tank.findByIdAndUpdate(id,{$set:{size:'large'}},{new:true},function(err,tank){ if..._id); }) 异步 Post 钩子 如果你给 post 钩子的回调函数传入两个参数,mongoose 会认为第二个参数是 next()函数,可以通过 next 触发下一个中间件 schema.post...但是我们有特殊的 post 中间件技巧处理这个问题 —— 错误处理中渐渐,它可以在出错执行你指定的代码。 错误处理中间件比普通中间件多一个 error 参数,并且 err 作为第一个参数传入

20.6K40

Mongoose学习参考文档

1.2 准备工作 1.首先你必须安装MongoDB和NodeJS 2.在项目只能够创建一个数据库连接,如下: var mongoose = require('mongoose'); //引用...Model和Entity都有能影响数据库的操作,但仍有区别,后面我们也会做解释 二、新手指引 如果您还不清楚Mongoose是如何工作的,请参看第一章快速通道快速浏览他的用法吧 1....Schema——纯洁的数据库原型 1.1 什么是Schema 我理解Schema仅仅只是一断代码,他书写完成程序依然无法使用,更无法通往数据库端 他仅仅只是数据库模型在程序片段中的一种表现,或者是数据属性模型...,{capped:{size:1024,max:100,autoIndexId:true}}); 2.5.5 versionKey——版本锁   版本锁是Mongoose默认配置(__v属性)的,如果你想自己定制...,则要使用如下方法 Person.findByIdAndUpdate(_id,{$set:{name:'MDragon'}},function(err,person){ console.log

24.2K90

使用node和express+mongodb实现数据增删改功能

在前后端分离的一个时代,后端提供接口,前端调用接口,逻辑判断,每个都是独立的工作。如果自己在空余的时间,想学习新的知识,却没有好的接口,只能写写假的json数据。...或者网上开源的数据库,mock,野狗数据库,firebase,或者使用本地的json-server搭建本地数据库使用也是完全没有问题的,也可以正常的实现数据的接口请求。  ...express,并创建一个app实列,请看下面,   2.5.1:port是我们的端口号,app.listen是监听端口号运行   2.5.2:然后通过node app.js运行,查看服务器是否正常运行成功...链接数据库 cnpm install mongoose 4.2然后在你的入口文件引入(app.js), const mongoose require('mongoose') 4.3在我们的根目录创建一个...({ _id: req.params.id }, { $set: UserName }, { new: true }) .then(user => { if (!

1.7K40

Koa2+MongoDB+JWT实战--Restful API最佳实践

:除非被清除,否则永久保存 工作原理 客户端带着用户名和密码去访问/login 接口,服务器端收到校验用户名和密码,校验正确就会在服务器端存储一个 sessionId 和 session 的映射关系。...不过 Session 每次都需要服务器查找,JWT 信息都保存好了,不需要再去查询数据库) 时效性,Session 能直接从服务端销毁,JWT 只能等到时效性到了才会销毁(修改密码也无法阻止篡夺者的使用...安装 mongoose npm install mongoose -S 连接及配置 const mongoose = require("mongoose"); mongoose.connect(.../config"); mongoose.connect( // 连接mongodb connectionStr, { useUnifiedTopology: true, useNewUrlParser...: false }, business: { type: "string", required: false }, }); const user = await User.findByIdAndUpdate

9.2K42

MongoDB系列一: Replica Set 集群搭建实战

随着内部产品业务的搭建,单机的mongo已经无法满足生产需求,对于单机迁移、损坏等问题,简单的单机数据备份已经无法满足,因为采用了集群方式来满足容灾以及数据快速恢复等功能,下面我就来讲讲如何搭建集群来避免这些问题...准备工作 机器信息: 3 台机器 mongo1 mongo2 mongo3 环境: CentOS 6.5 采用策略 Mongo有三种集群方式 1.Replica Set副本 2.Sharding分片 3...在三台机器都启动好,我们来到 mongo1 机器。 连接 mongodb ....1567686047066.jpg 我们看到通过不验证的方式登录已经无法查看信息了。 下面我们用认证方式来进行登录。 ....1567686155667.jpg 通过认证方式登录已经正常使用了。 退出登录,使用集群管理员登录。 .

3.6K41

mogoose 创建数据库并增删改查

下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); const db =...: true, //!...添加`createdAt updatedAt`创建时间和更新时间两个字段 } ); 如果在定义了结构需要添加新字段,在实例上使用add()方法 创建表model 通过mongoose.model...(name,sechem)来创建表结构构造器,通过传入数据来实例化构造器获得具体的表 注意:在这一步的时候数据库已经有了表,表名全是小写且表明为name加上s,如这里会创建表users const User...: 创建表数据实例化model 通过传入具体的数据来实例化表,能获得一条具体的表数据,类型为Mongoose Documents,向数据库中查找到的也是这种类型数据 const user = new User

5.1K30

三步带你开发一个短链接生成平台

现在市面上可用的就是微博的t.cn和一些第三方的生成短链接工具,但这两类工具都有一些使用上的问题,例如:t.cn现在的规则是会出现一个中转页不会直接跳转,而第三方的工具因为是一个公共平台,有时可能会因一些不良信息导致整个平台无法访问...27017', mongo_db: 'mongodb://localhost:27017/shorturl', mongo_options: { autoReconnect: true...因为这个应用我们只有生成和Redirect两个功能,所以这里只有两个页面即可完成所有工作。  ...启动应用并测试 npm start 启动,默认的访问端口为3000,我们首先测试下短链接生成页,这里我们post一个名为longUrl的长链接参数,数据对象为: {"longUrl" : "https...成功生成了如下短链接: http://localhost:3000/iGE6ZlDmh 我们只要通过访问短链接能正常跳转至保存的长连接即可。 ? 这样就测试通过了,其实代码量不大,原理也很简单。

3.1K30
领券