0
モンゴースの移植機能を利用しようとすると、最もひどい問題が発生します。私はここですべてのスレッドを見てきましたが、何も助けてくれませんでした。私のスキーマは下にマップされています。モンゴースの移植方法
'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);
私はマングースの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()
に動作しますか?これは私を殺している!!
手段 "が、何も動作" 何を提示してください動作するはずです。エラーはありますか? –
Mongooseのバージョンはわかりませんが、私はSchema.ObjectIdを有効な型として見たことがありません。それは "Schema.Types.ObjectId"と読むべきです - 少なくともスキーマの検証エラーを引き起こすはずです... – SylonZero
何を達成したいですか?あなたのスキーマでは、 'extras'は参照ではなく、埋め込まれたドキュメントですが、そのように動作するはずはありません。あなたが本当にしたいことを説明してください、そして私たちはあなたを助けることができます。 –