【发布时间】:2018-11-07 19:28:30
【问题描述】:
我正在尝试使用猫鼬的populate operator 来合并产品及其用户/所有者。
我制作了产品架构的“导出”模型,指定了所有字段,如下所示:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const someSchema= new Schema({
something1: String,
customers: [{ type: Schema.Types.ObjectId, ref: "customers" }],
price: Number,
...
})
module.exports = mongoose.model("products", someSchema, "products");
我已设法将用户/所有者的_id 保存在产品中,它在 MongoDB Compass 中显示为橙色 "ObjectId('...')",并且此相同 ID 与“客户”集合中的用户匹配(手动查看) .
但是当我在另一个模块中运行搜索时:
const model = require("../../models/productModel");
model
.populate("customers")
.find({ < some fields> })
.then( ... )
.catch( ... )
它在控制台中抛出以下错误:
TypeError: utils.populate: invalid path. Expected string. Got typeof `undefined`
我在这里遗漏了什么吗?我试了将近一个小时,一无所获。对不起,如果我错过了一些重要的事情,我有点累了。
非常感谢任何帮助。
【问题讨论】: