我正在尝试用猫鼬创建一个经典的文章/类别关联
一切正常,但由于我试图将查询结果公开为JSON,因此出现Converting circular structure to JSON
错误。
我知道这个问题与交叉引用模型有关,但我不知道如何解决这个问题
这是我的模型模式。
var ArticleSchema = new Schema({
created: {
type: Date,
default: Date.now
},
title: {
type: String,
default: '',
trim: true
},
content: {
type: String,
default: '',
trim: true
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
categories: [{
type: Schema.ObjectId,
ref: 'Category'
}]
});
ArticleSchema.statics.load = function(id, cb) {
this.findOne({
_id: id
}).populate('user', 'name username').populate('categories', 'title').exec(cb);
};
/**
* Category Schema
*/
var CategorySchema = new Schema({
created: {
type: Date,
default: Date.now
},
title: {
type: String,
default: '',
trim: true
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
},
{
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
/**
* Virtual Schema
*/
var articles = CategorySchema.virtual('articles');
articles.get(function () {
return Article.find({categories : { $eq: this }});
});
答案 0 :(得分:0)
好像你有循环引用,这意味着你创建的json在某些地方称它为自我。我不确定这条线是否可能是问题所在:
articles.get(function () {
return Article.find({categories : { $eq: this }});
});
为什么不尝试使用$ eq中的核心值?