こんにちは、私は、データベースからユーザが許可されているフィールドのみの取得に問題があります。 だから私のスキーマは次のとおりです。権限フィールドに基づいてフィールドを選択してください
var profileSchema = mongoose.Schema({
authId: {type: Schema.Types.ObjectId, ref: 'Auth'},
fname: String,
lname: String,
am: Number,
email: String,
location: String,
languages: [String],
birth_date: {
type: Date,
default: Date.now
},
reg_date: {
type: Date,
default: Date.now
},
last_log: {
type: Date,
default: Date.now
},
permissions: {
location: {type: Boolean,Default:true},
birth_date: {type: Boolean,Default:true},
email: {type: Boolean,Default:true},
am: {type: Boolean,Default:true},
subjects: {type: Boolean,Default:true},
files: {type: Boolean,Default:true},
posts: {type: Boolean,Default:true}
},
ip: String,
subjects: [{type: Schema.Types.ObjectId, ref: 'Subject'}],
files: [{type: Schema.Types.ObjectId, ref: 'FileIndex'}],
posts: [{type: Schema.Types.ObjectId, ref: 'Post'}],
notifications: [{type: Schema.Types.ObjectId, ref: 'Notifications'}]
});
そして、私は許可フィールドでそれが許されていますを意味している真の持っている唯一のフィールドを取得しようとしています。だから私は次のクエリを実行しています:
database.Profile.findOne({_id: req.params.id}).exec(function (err, profile) {
console.log(profile);
res.send(profile);
});
私はどのようにフィールドを選択できますか?
をお私は質問を投稿した直後に提案しましたが、この質問には2つのクエリが必要です。最初の回答は 'ravi shankar'からうまくいくので、最初のチェックはしませんでした。 –
@AlexisPavlidis最高の解決策の1つではなく、あらかじめアクセス許可キーがわからない場合には、代わりの方法です。全体的に私はラヴィの答えが+1で十分だと思う。 – chridam