2017-05-23 7 views
0

私は、ユーザーがプライベートな会話を持つことができるチャットアプリケーションを開発しています。私はsocketjとmongodbと一緒にnodejsを使用しています。私は、チャットとスキーマのようないくつかのスキーマの間に関係を持つ必要があります。チャットスキーマはスレッド(IDまたは名前)で構成されています。スレッドスキーマは、会話を簡単に取得するためのものです。私は、マングースのモデル間の関係に関連するいくつかの回答を見つけましたが、それがどのように機能するかはあまりよく分かりません。これは私が試したコードです。この種の関係を作成するには?mongooseとmongoDBのスキーマの関係

これは、マングースの人口と呼ばれています
const message = new Schema({ 
    sender:{ 
     type : Schema.Types.ObjectId, 
     ref : 'user' 
    }, 
    message:String, 
    thread:{ 
     type : Schema.Types.ObjectId, 
     ref : 'thread' 
    }, 
    created:{ type: Date, default: Date.now } 
}); 

スレッドスキーマ

const thread = new Schema({ 
    people:[{uname:String}], 
    created:{ type: Date, default: Date.now } 
}); 

ユーザースキーマ

const User = new Schema({ 
    fname:String, 
    lname:String, 
    uname:{type:String,unique:true}, 
    email:{type:String,unique:true,lowercase:true}, 
    password:String, 
    friends:[{ 
    type : Schema.Types.ObjectId, 
    ref : 'User' 
}] 
}); 

答えて

0

、あなたが他のコレクションからこのフィールドに入力することができます。

... 
User.findOne({fname: 'John'}) 
.populate('friends') 
.exec() 
.then(user=>{ 
    console.log('User - ', user); 
}) 
.catch(err=>{ 
    throw err; 
}) 
関連する問題