首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Mongoosepopulate方法实现多表关联查询

以内容管理系统为例,有文章分类、文章详情、文章作者三个集合,UML图如下: ? 业务需求如下:查询文章信息,并显示文章分类以及文章作者信息,下面用 populate 来实现这个查询需求。 1....定义文章分类schema生成模型导出,文件名 aritcleCate.js // 引入自定义数据库连接文件 var mongoose=require('....定义用户schema生成模型导出,文件名 user.js // 引入自定义数据库连接文件 var mongoose = require('....定义文章 schema 生成模型导出,文件名 article.js 通过给 schema 中关联字段添加 ref 与指定模型建立关联 // 引入自定义数据库连接文件 var mongoose =...(docs); }) // 文章表、分类表、用户表关联 ArticleModel.find({}).populate('cid').populate('author_id').exec(function

3.5K20

Mongoose 操作数据库实现增、删、改、查

Mongoose 介绍 Mongoose 是在 Node.js 异步环境下对 mongodb 进行便捷操作对象模型工具,Mongoose 是 NodeJS 驱动,为NodeJS独有。...Mongoose 有两个特点 1. 通过关系型数据库思想来设计非关系型数据库。 2. 基于 mongodb 数据库,但简化了操作。...传两个参数格式如下: mongoose.model(ModelName,Schema ) 第一个参数ModeName为定义模型名称,并且会和这个模型名称复数集合所在数据库建立连接,并操作这个集合,...var User=mongoose.model('User', UserSchema); 如上面的定义模型名称叫User,会操作所在数据库中 users 这个集合。 (2)....删除数据 // 传入ID不用包装成ObjectID对象 User.deleteOne({ _id: '5b72ada84e284f0acc8d318a' }, function (err)

1.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

Nodejs学习笔记(十四)— Mongoose介绍和入门

简介   Mongoose是在node.js异步环境下对mongodb进行便捷操作对象模型工具   那么要使用它,首先你得装上node.js和mongodb,关于mongodb安装和操作介绍可以参考...模块来操作来提升开发效率   下面我们一步步来了解mongoose基本操作^_^!...model是由schema生成模型,可以对数据库操作   我们对上面的定义userschema生成一个Usermodel并导出,修改后代码如下 /** * 用户信息 */ var mongoose...LBS)   $mod     取模运算   $near   邻域查询,查询附近位置(基于LBS)   $exists    字段是否存在   $elemMatch  匹配内数组内元素   $within...LBS条件查询,Schema中定义时如上   LBS查询对于一些基于LBS应用会用得比较多。

2.6K60

初试MongoDB学习之Mongoose使用

Mongoose本质是一个对象文档模型(ODM)库, 他对Node原生MongoDB模块进行了一部优化封装,并且提供了更多功能。...#Mongoose优势 可以像操作对象一样操作数据库 可以为文档创建一个模式结构(Schema) 可以对模型文档/文档进行验证 数据可以通过类型转换为对象模型 可以使用中间件来应用业务逻辑挂钩 比...Schema—— 一种以文件形式存储数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库操作能力,仅仅只是定义数据类型,可以说是数据属性模型(传统意义表结构),又或着是“集合”模型骨架...MongoDB在命令行中使用方法一样 //查询时只显示name personModel.find({}, {name: 1, _id: 0}, (err,data)=>{ if(!...)也可以使用 personModel.find({}, {name: 1, _id: 0, age: 1}, {skip: 0, limit: 2}, (err, data)=>{ //只显示name

5.9K20

持久化储存(二)

(); ODM - Mongoose 对于mongo,有时候也想直接在程序中定义模型。...也需要一个odm工具来方便更好操作。而mongoose就是i 一个良好工具。 mongoose是一个优雅nodejs对象文档模型。它是由关系型数据库思想去应用到非关系型数据库。...return this.model('blog').find({ author: this.author }).exec(); } // 获得模型实例 const BlogModel = mongoose.model...之所以出此狂言,背后还是有料,Keystone自带以下功能: 内置Express.js和MongoDB 动态路由 实用数据库域类型 自动生成管理员界面 基于数据模型表单处理 会话管理和认证功能 keystone...最牛逼地方就是根据你定义模型自动帮你实现后台管理界面,创建、管理、编辑和删除等,这得省掉很多功夫了。

13.3K50

你真的了解mongoose吗?

创建模型 使用我们 schema 定义,我们需要将我们userSchema转成我们可以用模型。也就是mongoose.model(modelName, schema) 。...里面的三个概念:schema、model和entity: schema: 一种以文件形式存储数据库模型骨架,不具备数据库操作能力 model: 由 schema 发布生成模型,具有抽象属性和行为数据库操作对..., [projection], [options], [callback]) 下面让我们依次看下 find()各个参数在实际场景中应用: conditionsModel.find({})Model.find...没有符合查询条件数据,result 返回 null。 更新 每个模型都有自己更新方法,用于修改数据库中文档,不将它们返回到您应用程序。...ref 选项告诉 Mongoose 在填充时候使用 User model。所有储存在 answerer 中 _id 都必须是 User model 中 document _id

41.5K30

大数据技术之_22_MongoDB学习_MongoDB 简介、下载、安装、启动、配置和关闭 + MongoDB 基本操作 + Mongoose + 使用 java 对 MongoDB 增删改查

db.users.find();  // 查询集合中所有文档 db.users.find({});  // 查询集合中所有文档 db.users.find({_id: "001"}); db.users.find...//在查询时,可以在第二个参数位置来设置查询结果--即投影 db.emp.find({}, {ename: 1, _id: 0, sal: 1});  第四章 Mongoose 4.1 Mongoose...Mongoose 是一个对象文档模型(ODM)库,它对 Node 原生 MongoDB 模块进行了进一步优化封装,并提供了更多功能。   ...4.2 Mongoose 好处 • 可以为文档创建一个模式结构(Schema) • 可以对模型对象/文档进行验证 • 数据可以通过类型转换转换为对象模型 • 可以使用中间件来应用业务逻辑挂钩 •..._id); // id 是 Document 对象属性,而 _id 是 js 对象属性     } }); 4.10 Mongoose 模块化 1、定义一个模块,用于连接 MongoDB 数据库

17.7K30

MongoDB增删改查操作

创建集合 创建集合分为两步,-是对对集合设定规则,二是创建集合,创建mongoose.Schema构造函数实例即可创建集合。...4.查询文档 find()方法 返回一组文档 // 根据条件查找文档(条件为空则查找所有文档) Course.find().then(result => console.log(result)) //...(result); // }); // 选择要查询字段 字段前加上-表示不查询此字段 // User.find().select('name age -_id').then(result => {...(result) }) ​ 5.删除文档 // 删除单个文档 如果条件包含多个文档,默认删除符合条件第一个文档 返回删除文档 User.findOneAndDelete({    _id: '...type: String   },    // 1、使用ID将文章集合和作者集合进行关联    author: {        type: mongoose.Schema.Types.ObjectId

6.5K20

Koa入门(四)Koa 操作数据库

1.1 NoSql数据库优缺点 在优势方面主要体现在下面几点: 简单扩展 快速读写 低廉成本 灵活数据模型 在不足方面主要有下面几点: 不提供对SQL支持 支持特性不够丰富 现有的产品不够成熟...下载地址 4 Koa + Mongodb 操作 4.1 安装链接 npm i mongoose -Sconst mongoose = require('mongoose') // 默认 27017 端口...required: true } }) // User 表 module.exports = model('User', userSchema) 操作数据库实现增删改查功能 把我们创建模型引入到上一节中创建控制器中...容易泄露,所以需要在模型中隐藏。..._id 获取) const ownUser = await User.findById(ctx.params.my_id) // mongoose 自带数据类型, 使用toString()方法

2.9K40

Nuxt + Koa2 + Mongodb 手撸一个网上商城

mongodb MongoDB 是一个基于分布式文件存储数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展高性能数据存储解决方案。...去官网看看 mongoose里面有三个概念,schemal、model、entity: Schema : 一种以文件形式存储数据库模型骨架,不具备数据库操作能力 Model : 由Schema发布生成模型...模型使用 Schema 接口进行定义。 Schema 可以定义每个文档中存储字段,及字段验证要求和默认值。 mongoose.model() 方法将模式“编译”为模型。...const mongoose = require('mongoose') const Schema = mongoose.Schema // 定义模型 const produtSchema = new...": 1}) // const lists = await User.find({'_id': _id}, {"cartList":{ "$slice":[skip,pageSize]

7.8K10

使用 ServerLess, Nodejs, MongoDB Atlas cloud 构建 REST API

业务逻辑与 FaaS、BaaS 严重耦合不利于单元测试、平台迁移:上面这个例子是不好,业务逻辑完全写在了 handler.js 文件 find 函数中,一方面 find 函数 event、context...不利于上下文重用:传动程序启动之后常驻内存,不存在冷启动问题,而 ServerLess 是基于事件驱动,第一次请求来了之后会下载代码、启动容器、启动运行环境、执行代码,这个过程称为冷启动,但是以 AWS...PUT /books/:id 根据 id 更新指定编号书籍 DELETE /books/:id 根据 id 删除指定编号书籍 目录规划 一个好项目离不开一个好目录规划,当然你也可以按照自己思路来做...app/model/books.js Mongoose 一切始于 Schema。...作者简介:五月君,Nodejs Developer,慕课网认证作者,热爱技术、喜欢分享 90 后青年,欢迎关注公众号「Nodejs技术栈」和 Github 开源项目 https://www.nodejs.red

2.8K20
领券