我有两个Collection :类别和书籍

书:

      const mongoose = require('mongoose');
        // eslint-disable-next-line camelcase
        const mongoose_delete = require('mongoose-delete');
        
        const { Schema } = mongoose;
        const SchemaTypes = mongoose.Schema.Types;
        const Book = new Schema({
          name: { type: String },
          price: { type: Number },
          images: { type: Array },
          country: { type: String },
          author: { type: String },
          publicationDate: { type: String },
          description: { type: String },
          category: { type: SchemaTypes.ObjectId, ref: 'Category' },
          date: { type: Date, default: Date.now },
        }, {
          timestamps: true,
        });
        Book.plugin(mongoose_delete);
        Book.plugin(mongoose_delete, { overrideMethods: 'all', deletedAt: true });
        module.exports = mongoose.model('Book', Book);

类别:

      const mongoose = require('mongoose');
        // eslint-disable-next-line camelcase
        const mongoose_delete = require('mongoose-delete');
        
        const SchemaTypes = mongoose.Schema.Types;
        const { Schema } = mongoose;
        
        const Category = new Schema({
          name: { type: String, required: true },
          image: { type: String },
          products: [{ type: SchemaTypes.ObjectId, ref: 'Book' }],
          date: { type: Date, default: Date.now },
        }, {
          timestamps: true,
        });
        Category.plugin(mongoose_delete);
        Category.plugin(mongoose_delete, { overrideMethods: 'all', deletedAt: true });
        module.exports = mongoose.model('Category', Category);

我 Select 了列表中收到的所有书籍:

      {
        _id: new ObjectId("623668ac5b1d392b37690cbc"),
        name: 'The Godfather',
        price: 110000,
       
        country: 'U.S',
        publicationDate: '1969',
        category: new ObjectId("6238fdf64f60303756b60b20"),
        author: 'Mario Puzo',
        ... : ...

}

And I want to display the category name on the product list, how do I do it?

{{book.category.image}

?**

推荐答案

由于您使用的是mongoose ,所以可以使用populate()方法.你可以这样做:

const books = await Books.find().populate('category')

Javascript相关问答推荐

功能和普通对象之间的原型污染

为什么在获取回调内设置状态(不会)会导致无限循环?

仅圆角的甜甜圈图表

为什么从liveWire info js代码传递数组我出现错误?

yarn安装一个本地npm包,以便本地包使用main项目的node_modules(ckeditor-duplicated-modules错误)

如何从JSON数组添加Google Maps标记—或者如何为数组添加参数到标记构造器

使用javascript将Plotly Expandable Sparkline转换为HighCharter Plot在bslib卡中

为什么我的列表直到下一次提交才更新值/onChange

如何使用JavaScript将文本插入空div

分层树视图

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

在VS代码上一次设置多个变量格式

获取';无法解决导入和导入";slick-carousel/slick/slick-theme.css";';错误

为什么我的按钮没有从&q;1更改为&q;X&q;?

如何用javascript更改元素的宽度和高度?

如何使用画布在另一个内部绘制一个较小但相同的形状,同时保持恒定的边界厚度?

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

Clip-Path在网页浏览器(Mozilla、Edge、Chrome)上不能正常工作,但在预览版Visual Code Studio HTML、CSS、JS上却能很好地工作

JavaScript&;Reaction-如何避免在不使用字典/对象的情况下出现地狱?

对不同目录中的Angular material 表列进行排序