我真的认为这应该是我在架构上的最后一个问题,我的系统的其余部分现在运行得非常好。到目前为止,人口对我来说运作良好,我只能怀疑我的架构需要稍微调整一下才能正常工作,就像这样:
// =======================================
// schema.js
var UsersSchema = new Schema({
display_name : String,
email : String
});
var UserSocialMediaSchema = new Schema({
user_id : {type: Schema.Types.ObjectId, ref: 'Users'},
account_id : Number,
profile_picture : String
});
var UserSocialMediaFriends = new Schema({
user_id : {type: Schema.Types.ObjectId, ref: 'User_SocialMedia'},
user_a_account_id : Number,
user_b_account_id : Number
});
var PostsSchema = new Schema({
user_id : {type: Schema.Types.ObjectId, ref: 'User_SocialMedia'},
from_id : Number,
from_name: String,
post_type : String,
body : String
});
var users = mongoose.model('Users',UsersSchema);
var userSocialMedia = mongoose.model('User_SocialMedia',UserSocialMediaSchema);
var userSocialMediaFriends = mongoose.model('User_SocialMediaFriends',UserSocialMediaFriends);
var posts = mongoose.model('Posts',PostsSchema);
module.exports = {
Users: users,
User_SocialMedia: userSocialMedia,
User_SocialMediaFriends: userSocialMediaFriends,
Posts: posts,
};
// =======================================
// module.js
var db = require('./schema.js');
// ...
db.Posts.find({_id:{$in:post_ids}}).populate('user_id').exec().then(function(data){
for (var i in data) {
// data[i].user_id = null
}
});
任何人都可以解释为什么我在这里找到null这个查找的值是正确的,以及我如何纠正?是因为有两个模型指向User_SocialMedia?
感谢。