我试图在 Stackoverflow 上找到任何类似的问题,但没有任何运气。我正在努力寻找在两个文档之间建立关系的正确方法。这是一个非常简单的分层类别案例。每个类别可以有一个父级和多个子级。
var categorySchema = Schema({
name: String,
parent: { type: Schema.ObjectId, ref: 'Category' },
children: [{ type: Schema.ObjectId, ref: 'Category' }],
order: Number
});
var Category = mongoose.model('Category', categorySchema);
当我创建一个新类别时,我将 _id 传递给它应该拥有的(如果有的话)父级。我从 POST/PUT 请求中获取此 _id 作为字符串,并使用此 _id 获取类别。提取工作正常,结果我得到了正确的类别。但这就是我挣扎的地方,如何使用 mongoose 查询返回的结果来创建新类别与其父级之间的关系?
var query = Category.find({'_id': parentCategoryID});
query.select('name');
query.exec(function (err, parentCategory) {
if (!err) {
console.log("Fetched parentCategory: "+parentCategory+".. parentCategory._id: "+parentCategory._id);
var parent = parentCategory.toObject();
var category = new Category();
category.name = name;
category.parent = Schema.ObjectId(parent._id);
console.log 获取的 parentCategory: { name: 'Parent Category', _id: 5218dcd6e6887dae40000002 }.. parentCategory._id: undefined
我尝试以多种不同的方式设置父属性,但无法使其正常工作。也没有任何运气找到有关该问题的文档。
非常感谢您对此事的任何帮助,我希望更多的人可以从这个问题的任何答案中受益。