Mongoose中type与ref是.populate的关键字吗?能否自定义命名?
关于Mongoose中关联字段
type和ref的疑问 嘿,你的理解完全正确——type和ref确实是Mongoose的专属关键字,populate方法就是靠这两个字段来完成关联数据查询的,它们的名称是不能自定义的哦。
具体来说:
type: mongoose.Schema.Types.ObjectId:用来指定这个数组里存储的是MongoDB的ObjectId类型数据,告诉Mongoose这个字段关联的是另一个文档的ID;ref: "comment":则是指定这个ID对应的是哪个Mongoose模型(也就是你定义的comment模型),populate会根据这个值去找到对应的集合,把关联的评论数据填充进来。
如果你自定义了这两个键的名称,比如改成idType或者modelRef,那populate方法就无法识别这些配置,自然也就没办法完成关联数据的填充了。
你的这段代码写法是完全标准的Mongoose关联设置:
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)
内容的提问来源于stack exchange,提问作者pi2018
相关产品推荐
相关产品推荐

