ファイル/ビデオを1回だけ報告できるようにします。ユーザーIDを配列にプッシュすることによって、ユーザーが既にファイルを報告しているかどうかを確認します。 これまでのところ、現在のユーザー、次にVideoIDを1ずつ増分して、それをreportedBy配列にプッシュすることができました。しかし、私はかなり失われています、それは現在のユーザーが既にファイルを報告しているかどうかをチェックすることです。すべてのヒント/ヘルプは非常に高く評価されます! :-)NodeJS/MongoDB - ログインしたユーザーの値を持つ配列の値を一致させる
MY ROUTE
router.get('/report/:videoLink', function(req, res, next){
async.waterfall([
function(callback){
User.findOne({_id: req.user._id}, function(err, foundUser){
if(err) return next(err)
callback(err, foundUser)
})
},
function(foundUser, callback){
Video.findOne({videoLink: req.params.videoLink}, function(err, reportVideo){
reportVideo.reports++;
reportVideo.reportedBy.push(foundUser);
if (reportVideo.reports > 4) {
reportVideo.remove();
}
reportVideo.save(function(err){
if(err) return next();
});
res.redirect('/');
});
}
]);
});
MY SCHEMA
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var random = require('mongoose-simple-random');
var fragSchema = new Schema({
title: String,
videoLink: {type: String, unique: true, required: true},
category: String,
upVotes: {type: Number, default: 0},
downVotes: {type: Number, default: 0},
voted: {type: Boolean, default: false},
reports: {type: Number, default: 0},
reportedBy: [{ type: Schema.Types.ObjectId, ref: 'User'}],
ownByUser: {type: Schema.Types.ObjectId, ref: 'User'},
date: { type: Date, default: Date.now }
});
fragSchema.plugin(random);
module.exports = mongoose.model('Frag', fragSchema);
ありがとう!まさに私が探していたもの!私は3つすべてをテストし、彼らはすべて仕事をした! :) – DbTheChain