2017-05-12 4 views
0

倍数IDを移入マングースは、私はこれらのスキーマを持っている

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); 

私はこれらのドライバ群があります。

[{ 
    id: '12345', 
    name: 'Group1' 
}, { 
    id: '6789', 
    name: 'Group2' 
}] 

と、このドライバを:

{ 
    name: 'Driver1', 
    groups: '12345,6789' 
} 

私は人口によってグループを取得できますか?私はこれを使用しています:

Driver.find().sort('name').populate('groups') 

しかし、正しく動作しません。

答えて

1

groupsをこのように読み込むと間違って保存しています。
populate文字列を解析して別のエンティティを判別することはできません。

それは、また

groups: ['12345,6789'] 

こと_idsを検索することで作品を移入する必要があり、配列

groups: '12345,6789' 

する必要があります(フィールドに名前を付けていない)

だから、あなたを変更する必要がありますスキーマ:

var DriverSchema = Schema({ 
    name: String, 
    groups: [{ type: string, ref: 'DriverGroup' }] 
}); 

あなたは_idすぎて(あなたのケースでnameと同じに_idを設定)

var DriverGroupSchema = Schema({ 
    _id: String, 
    name: String 
}); 

http://mongoosejs.com/docs/populate.html

+0

感謝を設定する必要があります!正常に動作します! – jfergt

関連する問題