2015-04-06 56 views
0

我在貓鼬和節點JS很新。我在我的項目中遇到了一些麻煩。 這裏是我的用戶模型如何填充兩個集合在同一紀錄貓鼬和節點JS

UserSchema = new Schema({ 
account:String, 
password:String, 
display_name:String)} 

和朋友模型

FriendSchema = new Schema({ 

friend_from_id:{ 
    type:Schema.ObjectId, 
    ref:'users' 
}, 
friend_to_id:{ 
    type:Schema.ObjectId, 
    ref:'users' 
}}); 

和user_status模型

UserStatusSchema = new Schema({ 

user_id:{ 
    type:Schema.ObjectId, 
    ref:'users' 
}, 
status:{ 
    type:Boolean 
}, 
status_text:String, 
last_updated_at:String}); 

我怎麼能填充或任何方式,利用這樣的

朋友模型結果
{ 
"_id": "55145b6b8b9c9e6c1f739441", 
"friend_to_id": { 
    "_id": "5502976dbef9fa180d28ea21", 
    "display_name": "Jason", 
    "account": "[email protected]", 
    "status":false, 
    "status::"how it's going" 
}, 
"friend_from_id": { 
    "_id": "5502976dbef9fa180d28ea21", 
    "display_name": "SonPham", 
    "account": "[email protected]", 
    "status":true, 
    "status::"how to do it"} 

這意味着我想結合user_status和用戶模型在一個朋友模型領域

+0

請幫幫我! :( – 2015-04-06 10:51:00

回答

0

我不是很確定我明白這個問題,但它似乎有一個用戶列表,你希望做一個自我參照,多對多關係(即用戶可以擁有許多其他用戶的朋友併成爲他們的朋友)。要啓用此功能,您需要更新用戶對象(可能包含其他信息)和朋友集合(添加/刪除關係)。如果沒有對解決方案進行評論,我想你會通過查看貓鼬的「鉤子」中間件(http://mongoosejs.com/docs/middleware.html)找到你需要的東西。這使您可以在保存前和保存後階段執行其他功能。保存好用戶模型後,您可以使用後保存掛鉤來更新好友模型。

UserSchema.post('save', function(doc) { 
    // Remove deleted friendships and add new ones here 
}); 

至於你提出的解決方案,我想看看many to many relationship with nosql (mongodb and mongoose)一些可能的替代/改進。

+0

感謝您的回答:) – 2015-04-06 14:08:07

+0

不客氣。如果您覺得它有用,請提高評分。謝謝! – Gene 2015-04-06 15:09:16