私はユーザーと投稿の2つのコレクションを持っており、ページにフィードを投稿したユーザーのようなユーザー名を取得しようとしています。 curretnly私はこのような何かを得ている IMAGEng-repeatを使用して2つの異なるコレクションからデータを取得する方法
とtwitterのようなものを実装したい。ユーザーデータと投稿が2つの異なるコレクションにあるためです。私は投稿に「_id」しか得られません。以下は、ファイル
モデル/ story.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var StorySchema = new Schema({
creator: {type:Schema.Types.ObjectId, ref: 'User'},
content: String,
create: { type:Date, default: Date.now }
});
module.exports = mongoose.model('Story', StorySchema);
モデル/ user.jsの
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
name:String,
username: { type:String, required: true, index: { unique: true}},
password: { type: String, reuired: true, select: false }
});
UserSchema.pre('save', function(next){
var user = this;
if(!user.isModified('password')) return next();
bcrypt.hash(user.password, null, null, function(err, hash){
if(err) return next(err);
user.password = hash;
next();
});
});
UserSchema.methods.comparePassword = function(password){
var user = this;
return bcrypt.compareSync(password, user.password);
}
module.exports = mongoose.model('User', UserSchema);
コントローラ/ Storyctrl.js
angular.module('storyCtrl', ['storyService'])
.controller('StoryController', function(Story, socketio){
vm = this;
vm.stories=[];
vm.getStories = function(){
Story.all()
.success(function(data){
vm.stories = data;
});
};
vm.createStory = function(){
vm.message = '';
Story.create(vm.storyData)
.success(function(data){
vm.storyData.content = '';
vm.message = data.message;
// vm.getStories(); // Refresh
// vm.stories.push(vm.storyData);
});
};
vm.getStories();
socketio.on('story', function(data){
vm.stories.push(data);
});
})
.controller('allStoriesController', function(stories, socketio){
var vm = this;
vm.stories = stories.data;
socketio.on('story', function(data){
vm.stories.push(data);
});
})
HTMLファイル
です<div>
<div class="col-md-4">
</div>
<div class="col-md-4">
<div class="row">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Stories</h4>
</div>
<div class="panel-body">
<ul class="list-group" >
<li class="list-group-item" ng-repeat="s in story.stories | reverse">
{{ s.content | date:"h:mma 'on' MMM d, y" }}
<small>Posted by @ {{s.creator}}</small>
<small class="pull-right">{{s.create | date:"h:mma 'on' MMM d, y"}}</small>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-md-4">
</div>
</div>
私はnodejsとmongodbを初めて使用しています。軽微な間違いや、まだ説明していないことがあれば、私はコメントを控えてください。