Custphone
とSubdomain
の2つのスキーマがあります。 Custphone
belongs_to
a Subdomain
およびSubdomain
has_many
Custphones
。
問題は、Mongooseを使用して関係を作成することです。私の目標は、custphone.subdomainを実行して、Custphoneが属するサブドメインを取得することです。
私は自分のスキーマにこれを持っています:
SubdomainSchema = new Schema
name : String
CustphoneSchema = new Schema
phone : String
subdomain : [SubdomainSchema]
Custphoneの結果を印刷すると、次のようになります。
{ _id: 4e9bc59b01c642bf4a00002d,
subdomain: [] }
MongoDBでCustphone
結果に{"$oid": "4e9b532b01c642bf4a000003"}
が含まれる場合。
custphone.subdomain
を実行して、カストフォンのサブドメインオブジェクトを取得したい
Mongooseの新しい populate 機能を試してみたいようです。
上記の例を使用します。
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
SubdomainSchema = new Schema
name : String
CustphoneSchema = new Schema
phone : String
subdomain : { type: ObjectId, ref: 'SubdomainSchema' }
subdomain
フィールドは、次のような '_id'で更新されます。
var newSubdomain = new SubdomainSchema({name: 'Example Domain'})
newSubdomain.save()
var newCustphone = new CustphoneSchema({phone: '123-456-7890', subdomain: newSubdomain._id})
newCustphone.save()
subdomain
フィールドから実際にデータを取得するには、もう少し複雑なクエリ構文を使用する必要があります。
CustphoneSchema.findOne({}).populate('subdomain').exec(function(err, custPhone) {
// Your callback code where you can access subdomain directly through custPhone.subdomain.name
})