[英]Mongoose populate method
我在嘗試使貓鼬的填充功能正常工作時遇到了最糟糕的麻煩。 我已經查看了SO上的所有線程,但沒有任何幫助。 我的架構如下所示。
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
/**
* Prodcut Feature Extra
*/
var extra = new Schema({
name: {
type: String,
default: '',
required: 'Please fill Product name',
trim: true
},
price: {
type: Number,
default: 0
},
description: {
type: String,
trim: true
},
toolTip: {
type: String,
trim: true,
min: 3,
max: 140
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
/**
* Product Feature Schema
*/
var feature = new Schema({
name: {
type: String,
default: '',
required: 'Please fill feature name',
trim: true
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
/**
* Product Schema
*/
var ProductSchema = new Schema({
name: {
type: String,
default: '',
required: 'Please fill Product name',
trim: true
},
created: {
type: Date,
default: Date.now
},
features: [feature],
extras: [extra],
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
mongoose.model('Feature', feature);
mongoose.model('Extra', extra);
mongoose.model('Product', ProductSchema);
我已經在Mongoose Repl中嘗試了以下所有查詢,但沒有任何效果
models.Product.find().populate("Extra", "name").exec() models.Product.find().populate({path: "extras", location: "Extra"}).exec() models.Product.find().populate('extras', 'name').exec() models.Product.find().populate('extras', 'Extra').exec()
有沒有人有什么建議? 這真殺了我!
只是好奇!
下面的初始化不是在ProductSchema中引用之前必須完成的嗎?
mongoose.model('Feature', feature);
mongoose.model('Extra', extra);
像這樣
mongoose.model('Feature', feature);
mongoose.model('Extra', extra);
var ProductSchema = new Schema({
name: {
type: String,
default: '',
required: 'Please fill Product name',
trim: true
},
created: {
type: Date,
default: Date.now
},
features: [ {
type: Schema.ObjectId,
ref: 'Feature'
}],
extras: [ {
type: Schema.ObjectId,
ref: 'Extra'
}],
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
比這應該工作
models.Product.find().populate("extras")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.