使用填充来显示用户名而不是 ID
using populate to display username instead of id
我正在用猫鼬运行Expressjs,我在集合CustomerId之间建立了连接,如下所示:
.
.
/**
* Customer Schema
*/
var CustomerSchema = new Schema({
id : Number,
name: String,
joined: { type: Date, default: Date.now },
city: String
});
mongoose.model('Customer', CustomerSchema);
.
.
/**
* Order Schema
*/
var OrderSchema = new Schema({
id : Number,
products: [Schema.Types.Mixed],
total: Number,
comments: String,
customerId: {type: Number, ref: 'Customer'}
});
mongoose.model('Order', OrderSchema);
.
.
exports.customerOrders = function (req, res) {
return Order.find({customerId: req.params.customerId}, function (err, orders) {
Order.populate(orders, {path: 'customerId', model: 'Order'}, function (err, orders) {
if (!err) {
return res.json(orders);
} else {
return res.send(err);
}
});
});
};
上面的代码生成以下错误:
{
message: "Cast to ObjectId failed for value "1" at path "_id"",
name: "CastError",
type: "ObjectId",
value: 1,
path: "_id"
}
对象之间的关系id
没有_id
请帮助我以正确的方式使用填充方法。
感谢,
Mongoose 的populate
功能仅支持使用 _id
字段在引用的集合中查找相关文档。
因此,您不能使用其他字段(如 id
),您需要customerId
更改为:
customerId: {type: ObjectId, ref: 'Customer'}
OrderSchema
,然后改为使用客户的_id
值填充它。
相关文章:
- 显示某个用户ID的某个标签的30张Instagram图片
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- JSON获取用户id's在嵌套数组中
- 如何获取登录到当前会话的用户的ID
- SoundCloud API-基于系统中的ID创建用户配置文件
- 将URL字符串${userid}替换为javascript对象中的实际用户id
- 在Chrome for iOS中,附加到用户代理字符串的唯一选项卡ID
- 如何在主页的弹出窗口中从向导中的用户控制中获取ControlToValidate ID-javascript asp.n
- 嵌入iframe URL以在wordpress中包含当前用户id
- 更改错误文本“用户 ID 或密码不正确”
- 如何通过声云 api 调用获取用户 ID
- Javascript RegExp 以匹配用户 ID 模式
- 使用谷歌分析'Wordpress网站的用户ID功能
- 从用户id和电子邮件的.csv文件在facebook上发送好友请求
- Piwik:如何跨域(PHP/JS)跟踪访问者(用户ID)
- 使用javascript+id将用户直接引导到php页面
- 如何创建一个提示用户输入登录id和密码的网站
- 使用javascript SDK的Facebook用户电子邮件id
- 用户输入的动态表,单元格id作为网格引用
- 正在尝试验证用户ID