Mongoose 中使用 populate 实现关联查询

一、Mongoose populate

官方文档 https://mongoosejs.com/docs/populate.html

二、Mongoose populate 关联查询

在这里插入图片描述
1、定义 ref

var ArticleSchema = new Schema({ 
	title:{
		type: String, 
		unique: true
	},
	cid : {
		type: Schema.Types.ObjectId, 
		ref:'ArticleCate' //model 的名称 
	}, 
	/*分类 id*/ 
	author_id:{ 
		type: Schema.Types.ObjectId, 
		ref:'User' 
	}, 
	/*用户的 id*/ 
	author_name:{ 
		type:String 
	},
	descripton:String, 
	content : String 
});

2、关联查询

ArticleModel.find({}).populate('cid').populate('author_id').exec(function(err,docs){ 
	console.log(docs) 
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mongoose是一个Node.js下的MongoDB对象模型工具,它提供了简单易用的API,使得我们可以更加方便地操作MongoDB数据库。在Mongoose关联查询是常见的操作,它可以帮助我们在查询数据时,将多个集合的数据关联起来。 Mongoose关联查询可以通过populate()方法来实现populate()方法可以将引用类型字段(如ObjectId)关联的文档查询出来,并将其替换为实际的文档对象。通过populate()方法,可以实现单个或多个字段的关联查询。 例如,我们有两个集合,一个是用户集合,一个是文章集合,文章集合有一个字段userId表示文章所属的用户,我们可以通过以下代码实现关联查询: ```javascript const mongoose = require('mongoose'); // 用户集合 const UserSchema = new mongoose.Schema({ name: String, }); const User = mongoose.model('User', UserSchema); // 文章集合 const ArticleSchema = new mongoose.Schema({ title: String, content: String, userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User', // 关联用户集合 }, }); const Article = mongoose.model('Article', ArticleSchema); // 查询文章并关联用户 Article.find().populate('userId').exec((err, articles) => { if (err) { console.log(err); return; } console.log(articles); }); ``` 在上面的代码populate()方法的参数是需要关联的字段,可以是单个字段或多个字段,通过空格分隔。在查询结果,userId字段将会被关联的用户对象所替换。如果需要关联多个字段,可以像下面这样写: ```javascript Article.find().populate('userId').populate('categoryId').exec((err, articles) => { // ... }); ``` 以上就是Mongoose关联查询的基本用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值