MongoDB学习(黑马教程)-7-数据库MongoDB的集合关联
一,引入
当想要把文章的作者和用户中的人连接起来时,只要把用户的id给文章的author即可,但是还读取不到其他的用户信息,比如年龄和爱好等。
这时候就需要使用populate方法了:
二,实际例子:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/playground', { useNewUrlParser: true}).then(() => console.log('数据库连接成功')).catch(err => console.log(err, '数据库连接失败'));
// 用户集合规则
const userSchema = new mongoose.Schema({name: {type: String,required: true}
});
// 文章集合规则
const postSchema = new mongoose.Schema({title: {type: String},author: {type: mongoose.Schema.Types.ObjectId, //id的类型是这个ref: 'User' //利用ref关联User}
});
// 用户集合
const User = mongoose.model('User', userSchema);
// 文章集合
const Post = mongoose.model('Post', postSchema);
// 创建用户
User.create({name: 'itheima'}).then(result => console.log(result));
// 创建文章
Post.create({titile: '123', author: '5f3beb4e20dd974774bc3b7c'}).then(result => console.log(result));
Post.find().populate('author').then(result => console.log(result))
第一步:在文章下使用author属性,里面设置属性:
author: {type: mongoose.Schema.Types.ObjectId, //id的类型是这个ref: 'User' //利用ref关联User}
第二步,创建文章时,author需要引入对应 用户的id值
Post.create({titile: '123', author: '5f3beb4e20dd974774bc3b7c'}).then(result => console.log(result));
第三步,查询:利用populate方法,搞出对应的作者相关的信息。
Post.find().populate('author').then(result => console.log(result))
MongoDB学习(黑马教程)-7-数据库MongoDB的集合关联相关推荐
- 【MySQL】黑马教程MySQL数据库 MySQL基础(一)
文章目录 [MySQL]黑马教程MySQL数据库 | MySQL基础(一) MySQL启动 MySQL客户端连接 MySQL数据模型 SQL SQL分类 DDL 表操作-查询 表操作-创建 表操作-数 ...
- Mongodb学习总结(2)——MongoDB与MySQL区别及其使用场景对比
对于只有SQL背景的人来说,想要深入研究NoSQL似乎是一个艰巨的任务,MySQL与MongoDB都是开源常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数 ...
- MongoDB 学习笔记四 C#调用MongoDB
网址:http://blog.csdn.net/xundh/article/details/49449467 驱动 下载 https://github.com/mongodb/mongo-cshar ...
- [linux][MongoDB] mongodb学习(一):MongoDB安装、管理工具、
参考原文:http://www.cnblogs.com/kaituorensheng/p/5118226.html linux安装完美实现! 1. mongoDB安装.启动.关闭 1.1 下载安装包 ...
- 【MySQL】黑马教程MySQL数据库 | 学习记录笔记
MySQL概述 MySQL介绍 MySQL是一种关系型数据库(RDBMS),就是建立在关系模型基础上,由多张相互连接的二维表组成的数据库.像Excel表.特点:使用表存储数据,格式统一,便于维护:使用 ...
- MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本
介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一 ...
- mongodb3.2 java,MongoDB学习笔记:(3)、mongodb 3.2在java环境中的简单CRUD
首先新建一个java project项目,去下载mongo-java-driver-3.2.2.jar包.build path导入junit需要的jar包.另外运行代码前先要启动mongod 服务.下 ...
- 【MongoDB学习笔记7】深入MongoDB的删除(remove/drop)操作
先看集合post中文档信息: > db.post.find(); { "_id" : ObjectId("54a51cfd7f46906f81b7adcd" ...
- 非关系型数据库MongoDB学习笔记
MongoDB学习笔记 --周灿 创建数据库 use "databasename" 查看数据库 show dbs 给指定数据库添加集合和插入记录 db.集合名.insert({ ...
- MongoDB学习系列 -- 数据库、集合、文档的CURD
前面一篇章节我们已经对MongoDB的基本概念有了一个大概的了解,从今天开始,我们将进行更细粒度的学习,首先就是数据库.集合.文档的CURD操作. 为了便于操作,减少学习难度,我们这里使用javasc ...
最新文章
- QIIME 2教程. 16纵向和成对样本比较q2-longitudinal(2020.11)
- 利用solr6.5,tomcat9.0和centos7.0的搭建
- qt当前工程相对路径_QT编程:(6)相对路径问题
- Hadoop的HA机制
- IOS笔记CALayer的position和anchorPoint
- 在没有适当上下文的情况下引发异常是一种不良习惯
- 我们可以用SharePoint做什么
- Excel 如何使多组数据的饼状图大小一致
- 什么是消息队列(Message queue)
- matlab的卡方临界值,Excel计算卡方分布,F分布
- 大数据-浅谈hive优化
- 如何在亿级数据中判断一个元素是否存在?
- python 二项分布
- JVM垃圾回收器-CMS并发标记清除
- 云原生个人线路 Docker容器化
- 阿里云模板建站好处(模板建站+定制建站)优惠购买指导
- 《实时控制软件设计》第一次阅读笔记
- xilinx fpga SEM
- python线程间通信方法之Event
- java 郑莉 视频_[Java基础] 清华大学java语言教学视频 共49讲 郑莉主讲
热门文章
- 667.优美的数列II(力扣leetcode) 博主可答疑该问题
- oracle dba_tables degree default,oracle中如何将表的并行度设定为DEFAULT?如下:
- php7+结合比较运算符,php7运算符
- python小测验答案_2020中国大学《计算机应用基础(Python)》结课测验答案高校邦《教你动手做H5小游戏》章测试答案...
- django使用ajax传输数据
- cxgrid的FINDPANEL编程
- 月日加四位尾数编号生成 VB方式
- 移动端设计尺寸基础知识
- 【树】Unique Binary Search Trees II
- 虚拟化应用(三)Hyper-V 2.0 初探