我见过很多关于猫鼬和关系的例子,但是如何在自定义字段中创建对另一个实体的引用?
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
mongoose.connection.once('open', function(){
var Author = m.model('Author', new m.Schema({
name: String,
slugname: String
}));
var Book = m.model('Book', new m.Schema({
title: String,
author: {type: String, ref: 'Author.slugname'}
}));
});
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我将 Book.author 链接到 Author.slugname。只是我不知道这是不是正确的做法。
不,你不能。Mongoose 总是使用_id字段来链接文档。但...
_id您可以使用您想要的任何数据类型为每个文档设置自己的数据类型。只有两个限制:
因此,不要添加新slugname字段,而是使用作者_id作为 slugname:
var Author = m.model('Author', new m.Schema({
_id: String, // <-- slugname
name: String
}));
var Book = m.model('Book', new m.Schema({
title: String,
author: { type: String, ref: 'Author' }
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11141 次 |
| 最近记录: |