猫鼬填充倍数ID
Mongoose populate multiples ids
我有这些模式
var DriverSchema = Schema({
name: String,
groups: {
type: String,
ref: 'DriverGroup'
}
});
var DriverGroupSchema = Schema({
name: String
});
module.exports = mongoose.model('DriverGroup', DriverGroupSchema);
module.exports = mongoose.model('Driver', DriverSchema);
我有这些driver组:
[{
id: '12345',
name: 'Group1'
}, {
id: '6789',
name: 'Group2'
}]
和这个driver:
{
name: 'Driver1',
groups: '12345,6789'
}
如何按人口获得分组?我正在使用这个:
Driver.find().sort('name').populate('groups')
但不能正常工作。
如果您想以这种方式填充它们,那么您存储 groups
不正确。
populate
无法解析字符串以确定单独的实体。
应该是数组
groups: '12345,6789'
应该是
groups: ['12345,6789']
此外,通过查找 _ids(不是名称字段)填充作品
因此,需要更改您的架构:
var DriverSchema = Schema({
name: String,
groups: [{ type: string, ref: 'DriverGroup' }]
});
您还需要设置 _id
(在您的情况下将 _id
设置为与 name
相同)
var DriverGroupSchema = Schema({
_id: String,
name: String
});
我有这些模式
var DriverSchema = Schema({
name: String,
groups: {
type: String,
ref: 'DriverGroup'
}
});
var DriverGroupSchema = Schema({
name: String
});
module.exports = mongoose.model('DriverGroup', DriverGroupSchema);
module.exports = mongoose.model('Driver', DriverSchema);
我有这些driver组:
[{
id: '12345',
name: 'Group1'
}, {
id: '6789',
name: 'Group2'
}]
和这个driver:
{
name: 'Driver1',
groups: '12345,6789'
}
如何按人口获得分组?我正在使用这个:
Driver.find().sort('name').populate('groups')
但不能正常工作。
如果您想以这种方式填充它们,那么您存储 groups
不正确。
populate
无法解析字符串以确定单独的实体。
应该是数组
groups: '12345,6789'
应该是
groups: ['12345,6789']
此外,通过查找 _ids(不是名称字段)填充作品
因此,需要更改您的架构:
var DriverSchema = Schema({
name: String,
groups: [{ type: string, ref: 'DriverGroup' }]
});
您还需要设置 _id
(在您的情况下将 _id
设置为与 name
相同)
var DriverGroupSchema = Schema({
_id: String,
name: String
});