2015-04-06 5 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

, пожалуйста, помогите мне! :( –

ответ

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

Спасибо за ваш ответ :) –

+0

Добро пожаловать. Если вы сочтете это полезным, увеличьте рейтинг. Благодаря! – Gene

 Смежные вопросы

  • Нет связанных вопросов^_^