; 通过将密码进行md5加密与存储的密码比对,成功则说明密码正常; 使用jwt将用户名写入并生成token,存储到MongoDB中; token成功存储后成功响应前端接口数据。...const { username, password } = ctx.request.body; const ret = await ctx.model.User.findOne({ username...,成功查询说明Token正常; 通过验证token正确性得到被写入的用户名; 我们在通过用户名查询Mongo中对应的详细信息,成功查询后相应前端接口数据。...({ username }); if (userRet) { this.success(userRet); } } 复制代码 登出接口编写 同样通过获取token并查询,成功查询说明token...正常; 这时候我们只需要删除token,成功响应前端接口数据即可。
/database"); 执行下面代码检查默认数据库test,是否可以正常连接成功?...已经存在,则会保存到其目录下,如果未存在,则会创建person集合,然后在保存数据。...}else{ throw err; } }); #mongoose 插入和查询 mongoose查找数据的一些方法: https://mongoosejs.com/docs/api.html...err){ console.log(data) }else{ throw err; } }) MongoDB的find()、findOne() 等命令在...err){ console.log('查询条数成功! 一共:' + count + '条'); }else{ throw err; } }) ?
一,先定义了一个goods(商品)的models var mongoose = require('mongoose'); var Schema = mongoose.Schema; var productSchema...cartList),一个购物车有多个商品对象 现在我们来为用户添加商品(我们默认是可以直接添加的)===>userDoc为登录后的用户,我们为此用户的购物车添加商品 我们goods路由中: Goods.findOne...}) } } }) 上述正常执行后...(有时候不是很好) 解决方法二, 把查询到的结果clone一个对象,然后在新对象中补充属性。 ...Goods.findOne({productId: productId}, function (err1, doc) { var newobj = null
: 5c09dea28acfb814980ff827, name: 'Javascript', author: 'wuyuxin‘ }] // 根据条件查找文档 Course.findOne...User.find().skip(2).limit(2).then(result => console.log(result)) // 引入mongoose第三方模块 用来操作数据库 const mongoose...= require('mongoose'); // 数据库连接 mongoose.connect('mongodb://localhost/playground', { useNewUrlParser...// User.find({_id: '5c09f267aeb04b22f8460968'}).then(result => console.log(result)) // findOne方法返回一条文档...默认返回当前集合中的第一条文档 // User.findOne({name: '李四'}).then(result => console.log(result)) // 查询用户集合中年龄字段大于20
js 1;(async function() { 2 const cate1 = await Category.findOne({ 3 name: "vuejs" 4 }); 5 const...cate2 = await Category.findOne({ 6 name: "nodejs" 7 }); 8 const post1 = await Post.findOne({ 9...title: "第1篇帖子" 10 }); 11 const post2 = await Post.findOne({ 12 title: "第2篇帖子" 13 }); 14 15 post1...5d3061bb5617a5750523af66, 12 title: '第2篇帖子', 13 __v: 22 14} COPY 使用分类模型反查文章 因为分类模型中不存在对 Post 的记录所以查询的时候要建立虚拟字段...("Category", CategorySchema); COPY 修改之后直接就可以查询到了。
2.通过短链接查询长连接并重定向。 为了高效,我这使用的是node和mongodb,下面我们就来开始动手吧。...因为这个应用我们只有生成和Redirect两个功能,所以这里只有两个页面即可完成所有工作。 ...(setup.mongo_db, setup.mongo_options); UrlTable.findOne({ shortUrl:shortUrl }).then((result) => {...接收短链接码 var shortUrl = req.params.shortUrl; 连接数据库查询并跳转 mongoose.connect(setup.mongo_db, setup.mongo_options...成功生成了如下短链接: http://localhost:3000/iGE6ZlDmh 我们只要通过访问短链接能正常跳转至保存的长连接即可。 ? 这样就测试通过了,其实代码量不大,原理也很简单。
,Nest 官方为我们提供了一个 Mongoose 的封装,我们需要安装 mongoose 和 @nestjs/mongoose: npm install mongoose @nestjs/mongoose...举个例子,我们的 controller 接收到了一个用户的查询请求,我们不能直接在 controller 中去查询数据库并返回,而是要将查询请求交给 provider 来处理,这里我们创建了一个 UserService...--dev 安装完之后服务就正常重启了。...(user_name: string): Promise { return await this.userModel.findOne({user_name}); }....' }; } // GET /user/:_id @Post('/find_one') async findOne(@Body() userData:
查询 对于 Mongoosecha 的查找文档很容易,它支持丰富的查询 MongoDB 语法。包括find、findById、findOne等。...callback Mongoose 中所有传入 callback 的查询,其格式都是 callback(error, result) 这种形式。...findOne({ _id: undefined }) 相当于 findOne({}),返回任意一条数据。...而 findById(undefined) 相当于 findOne({ _id: null }),返回 null。 查询结果: 返回数据的格式是 {} 对象形式。...findOne 该方法返回查找到的所有实例的第一个 Model.findOne(conditions, [projection], [options], [callback]) 如果查询条件是 _id
准备工作 项目中我们用到的是基于node的express[1] 框架 npm i express-generator -g express-generator是一个express的应用生成器,可以快速的创建一个...const mongoose = require("mongoose"); const Scheme = mongoose.Schema; const ObjectId = mongoose.Types.ObjectId...= require("mongoose"); const model = mongoose.model.bind(mongoose); const scheme = require(".....('/goose/:id', gooseController.remove); module.exports = router 成果 我们完成上面的步骤之后,我们需要自测试一下接口和逻辑是否正确 查询人员...查询物品及所属人员 localhost:3000/api/goose get ? 最后 本文结束,有什么问题和有错误的地方,欢迎大家的留言和评论,还有后续更新,下期更加精彩 ???
查询助手作用于query实例,方便定义自己的查询扩展 animalSchema.query.byName = function(name) { return this.find({ name:...查询文档可以用model的find、findbyId,findOne,和where这些静态方法。...Model的多个静态辅助方法都可以查询文档 Query实例有一个.then()函数,用法类似Promise 我们看一下demo,查询persons表中name中属性last为Ghost值的文档,只查询...name和occupation两个字段 const Person = mpngoose.model('Pseron',PersonSchema); Person.findOne({name.last...findOne({title:'my book'}). populate('author').
({age:25}); // 查询符合条件的第一个文档对象 db.users.findOne({age:25}).name; // 查询一个符合条件的文档对象的属性值 db.users.findOne...({age:25}).count(); // 查询一个符合条件的文档对象的属性值(该方法常用) db.users.findOne({age:25}).length(); // 查询一个符合条件的文档对象的属性值...}}]}); // 30.查询财务部的所有员工 //(deptno) var deptno = db.dept.findOne({dname: "财务部"}).deptno; db.emp.find(...{deptno: deptno}); // 31.查询销售部的所有员工 var deptno = db.dept.findOne({dname: "销售部"}).deptno; db.emp.find...否则将不能正常操作。 4.6 Model--模型对象 一旦定义好了 Schema 对象,就需要通过该 Schema 对象来创建 Model 对象。
本文源自工作中的一个问题,在使用 Mongoose 做关联查询时发现使用 populate() 方法不能直接关联非 _id 之外的其它字段,在网上搜索时这块的解决方案也并不是很多,在经过一番查阅、测试之后...引用模型是一种规范化的数据模型,通过主外键的方式来关联多个文档之间的引用关系,减少了数据的冗余,在使用这种数据模型中就要用到关联查询,也就是本文我们要讲解的重点。...$as: 别名,关联查询返回的这个结果起一个新的名称。 如果需要指定哪些字段返回,哪些需要过滤,可定义 $project 对象,关联查询的字段过滤可使用 别名.关联文档中的字段 进行指定。.../model'); (async () => { const res = await AuthorModel.findOne({ authorId: 1 }) .populate({...bookIds', foreignField: 'bookId', count: true }); // populateTest.js const res = await AuthorModel.findOne
来操作MongoDB数据库官方文档:https://mongoosejs.com/首先需要安装mongoose包:npm install mongoose --save然后连接数据库并进行操作,例如创建表...:const mongoose = require('mongoose');mongoose.connect('mongodb://localhost/test', { useNewUrlParser:...(查)查询所有文档:Model.find(filter, projection, options, callback);查询第一个匹配条件的文档:Model.findOne(filter, projection...在查询数据时,可以通过 Model 对象进行查询,例如 find() 方法查询所有数据、findOne() 方法查询单个数据等。...在Node.js中,我们可以使用MongoDB官方提供的mongodb包来操作数据库,也可以使用第三方包mongoose,mongoose对mongodb进行了二次封装,使用起来更加方便。
/user.json(导入文件) 查询文档 // 引入mongoose第三方模块 用来操作数据库 const mongoose = require('mongoose'); // 数据库连接 mongoose.connect...('User', userSchema); // 查询用户集合中的所有文档 User.find().then(result => console.log(result)); // 通过_id字段查找文档...// User.find({_id: '5c09f267aeb04b22f8460968'}).then(result => console.log(result)) // findOne方法返回一条文档...默认返回当前集合中的第一条文档 // User.findOne({name: '李四'}).then(result => console.log(result)) // 查询用户集合中年龄字段大于20...字段值包含足球的文档 // User.find({hobbies: {$in: ['足球']}}).then(result => console.log(result)) // 选择要查询的字段 //
写在前面 最近读《node.js学习指南》,对于mongodb没有介绍太多的工作原理,但是对于一个前端开发者,即使你还没有用过这种数据库也可以让你很好的理解和使用 一本非常好的介绍node.js的书,我一直把他放在触手可及的地方...实现查询数据 对于MongoDB Native Node.js Driver来说有四种查询数据的方法:find()、findOne()、findAndRemove()、findAndModify() ...findOne()和find()支持以下三个参数:查询数据、可选参数、回调函数 。...虽然原始驱动提供了数据库的连接,但是缺少更高级别的抽象,有些繁琐,所以有时候你需要使用类似mongoose的ODM, mongoose构建在mongodb之上,提供了Schema、Model和Document...下一次我会总结一下使用express + mongoose建立数据库的连接
bash 1npm i mongoose COPY 在 js 中加入 js 1const mongoose = require("mongoose"); 2mongoose.connect("mongodb...查询数据 定义一个路由 /names,get 请求时返回所以记录的 json 格式。...1app.get("/names/:name", async (req, res) => { 2 const name = req.params.name; 3 res.send(await Names.findOne.../names/:name", async (req, res) => { 2 const params = req.params.name; 3 const name = await Names.findOne...name); 7}); COPY 删除数据 js 1app.delete('/names/:name', async (req, res) => { 2 const name = await Names.findOne
// mongoose.Schema() 是一个构造函数,要new一个实例对象 //2、设定集合规则 const courseSchema = new mongoose.Schema({ name...'xc-dh‘ },{ _id: 5c09dea28acfb814980ff827, name: 'Javascript', author: 'xc-dh‘ }] findOne...()方法 返回一条文档 // 根据条件查找文档 Course.findOne({name: 'node.js基础'}).then(result => console.log(result)) // 返回文档...使用id对集合进行关联 使用populate方法进行关联集合查询 ?...// 关联集合 const mongoose = require('mongoose'); // 连接数据库 mongoose.connect('mongodb://localhost/playground
---- 两年前的文章,水一下 准备工作 后端环境搭建 新建 vue_node 文件夹, 建立子文件夹 serve, 文件夹下打开 cmd 输入 npm init -y 初始化项目描述文件 package.json.../model/user.js"); //匹配二级请求路径 注册接口 register.post("/register", async (req, res) => { // 数据库中查询用户是否存在...const user = await User.findOne({ account: req.body.account }) if (user) { //如果用户存在...$refs[formName].resetFields(); } } 6.页面输入进行注册,可以正常添加数据 控制台输出如下 数据库如下 7.修改 axios 中代码如下 this....const user = await User.findOne({ account: req.body.account }) if (user) { //如果用户存在
前言 上篇文章阐述了mongoose的scheme和model基础知识,有了上面的认知,我们开始下面的一系列骚操作,亲爱滴小伙伴们准备好了吗?...准备工作 let mongoose = require("mongoose"); let connection = require("..../connection"); 首先我们需要启动数据库,然后把mongoose库和connection引入,为我们连接数据库做准备。...apple1"}); console.log("docs",docs) })() 查找一条 (async function(){ let docs = await UserModel.findOne..._id,grade:100}); console.log(score); })() image.png 我们在上面的准备工作里创建了一个UserScheme集合结构,在这里我们又创建ScoreSchema
mongoURI : "mongodb://localhost/mine } // 引入mongoose const mongoose = require('mongoose') // 我们把数据的驱动连接...使用bcrypt npm install bcrypt router.post('/register',(req,res)=>{ // console.log(req.body) // 查询数据库中是否有邮箱...User.findOne({email:req.body.email}) .then((user)=>{ if(user){ return res.status.../ 如果失败得到一个catch }); }); } }) }) 然后在postman试一试 再去MongoDB中查询一下...User.findOne({email:req.body.email}) .then((user)=>{ if(user){ return res.status
领取专属 10元无门槛券
手把手带您无忧上云