从另一个mongoose集合中检索值可以通过使用mongoose的populate方法来实现。populate方法可以将一个集合中的引用字段替换为实际的文档数据。
具体步骤如下:
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: String,
posts: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Post' }]
});
const postSchema = new mongoose.Schema({
title: String,
content: String
});
const User = mongoose.model('User', userSchema);
const Post = mongoose.model('Post', postSchema);
User.findOne({ name: 'John' })
.populate('posts')
.exec((err, user) => {
if (err) {
console.error(err);
return;
}
console.log(user.posts);
});
上述代码中,通过findOne方法找到name为'John'的用户,并使用populate方法将其posts字段替换为实际的Post文档数据。最后打印出用户的所有帖子。
这样就可以从另一个mongoose集合中检索值了。
关于mongoose的populate方法的更多信息,可以参考腾讯云数据库MongoDB的官方文档:populate方法
领取专属 10元无门槛券
手把手带您无忧上云