首页 > 解决方案 > 猫鼬模式类型和参考?它们是 .populate 方法的关键词吗?还是它们是任意词?

问题描述

我正在尝试使用引用在 Mongoose 中创建数据关联,我想将来自 commentSchema 的 ID 添加到我的 objectScehma 中。我从某个地方复制了这段代码,它可以工作。

我的问题是——注释数组中用于对象的键名: typeref——这两个词是 mongoose 中的某种类型的键词,由 .populate 方法使用???或者我们可以为这两个键命名吗?我已经在下面复制粘贴了我的代码,任何帮助将不胜感激。

谢谢!!!

var mongoose = require("mongoose");

var objectSchema = new mongoose.Schema({
        name: String,
        image: String,
        description: String,
        comments:[
                {
                    type: mongoose.Schema.Types.ObjectId,
                    ref: "comment"
                }
        ]
    });

module.exports = mongoose.model("campground", objectSchema)

标签: node.jsmongodbexpressmongoosedatabase-schema

解决方案


typeref - 这两个词是猫鼬中的某种关键字,(...)

对,他们是。在内部,猫鼬在其算法中使用这两个键来设置你的猫鼬模型。您可以在type此处查看密钥的用法:https ://github.com/Automattic/mongoose/blob/master/lib/schema.js#L358

您可以按照此处记录的方式自由覆盖它:http: //mongoosejs.com/docs/guide.html#typeKey

至于ref,如果我没记错的话,猫鼬在内部保留了所有模型定义的“缓存”,并使用ref密钥快速获取其内部列表的模型定义。我可能是错的,所以不要对它持保留态度。


推荐阅读