[英]How to not select fields that not defined in a schema?
我想對兩個模式使用一個集合,例如:DB中的文檔:
{
"name":"John",
"position":"CEO"
}
模式User
:
{
"name" : String
}
架構Employee
:
{
"name" : String,
"position" : String
}
不過,在結果中選擇一個用戶( User.findById()
)時,我可以看到文檔中的所有字段,即使未在架構中定義。 我根本不想透露簡化模型中的某些字段,所以請select: false
此類字段的select: false
不是我要查找的...另外,我想防止保存未在列表中列出的任何字段模式。
是否可以通過這種方式定義模式?
還是我錯了,而select:false
正是我要找的東西? :-)
我正在使用Mongoose 5.0.14
但如果有幫助的話,更新到最新版本也不是問題。
我看到了問題: 如何在MongoDB中選擇單個字段? ,但我希望ODM為我做這件事。
嘗試這個。 :)
var fields = Object.keys(yourSchema.paths).join(' ');
//and when execute a query
User.find({}).select(fields).exec(callback);
在您的模式中嘗試
MySchema.pre('find', function() {
this.select(fileds);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.