大家好我有一個問題,從數據庫只允許由用戶獲取字段。 所以我的模式是:根據權限字段選擇字段
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);
});
如何僅選擇允許的字段?
我的第二個解決方案解決它,你在我發佈這個問題後提出了這個問題,但是這個需要兩個查詢。我沒有檢查第一個問題,因爲'ravi shankar'的第一個答案很好,謝謝。 –
@AlexisPavlidis不用擔心,如果您事先不知道權限密鑰,則不是最佳解決方案之一,而只是一種替代方案。總的來說,我認爲拉維的回答就足夠了,因此+1。 – chridam