Mongoose爲Schema的版本添加'__v'屬性 - 是否可以全局禁用或全局隱藏所有查詢?貓鼬__v財產 - 隱藏?
回答
通過將versionKey
選項設置爲false
,可以禁用架構定義中的「__v」屬性。例如:
var widgetSchema = new Schema({ ... attributes ... }, { versionKey: false });
我不認爲您可以全局禁用它們,但只能按照架構來執行它。您可以閱讀更多關於Schema's options here的信息。你也可能會發現Schema set method有幫助。
要禁用 '__v' 屬性,這是not recommended,使用versionKey
schema option:
var Schema = new Schema({...}, { versionKey: false });
從所有查詢,這有時會not what you want too隱藏它,使用select
schema type option:
var Schema = new Schema({ __v: { type: Number, select: false}})
那麼如何在返回給用戶之前刪除_id和__v?有什麼我可以做的映射嗎?從模式到模型的映射將刪除這兩個屬性,並且從模型到模式的映射可以讓我們說刪除一些用戶不應該能夠編輯但仍然可以看到的字段。 –
定義一個toObject.transform
函數,並確保您在從貓鼬獲取文檔時始終調用toObject
。
var SomeSchema = new Schema({
<some schema spec>
} , {
toObject: {
transform: function (doc, ret, game) {
delete ret.__v;
}
}
});
或者,您可以調用'user.toObject({versionKey:false})',這會隱藏'__v'版本屬性。 – FullStackForger
你還需要'toJSON()'嗎? – binki
兩種方式:
{versionKey: false}
- 在查詢
,像
model.findById(id).select('-__v')
'-'
手段排除領域
你可能不想禁用__v
,其他答案提供了幾個鏈接來回答爲什麼你不應該禁用它。
我已經使用這個庫隱藏__v
和_id
let mongooseHidden = require("mongoose-hidden")();
// This will add `id` in toJSON
yourSchema.set("toJSON", {
virtuals: true,
});
// This will remove `_id` and `__v`
yourSchema.plugin(mongooseHidden);
現在__v
會存在,但它不會與doc.toJSON()
返回。
希望它有幫助。
試試這個命令會從每個查詢響應中刪除_v。
// transform for sending as json
function omitPrivate(doc, obj) {
delete obj.__v;
return obj;
}
// schema options
var options = {
toJSON: {
transform: omitPrivate
}
};
// schema
var Schema = new Schema({...}, options);
是的,這很簡單,只需編輯 「schema.js」 文件,該文件是內部
"node_modules\mongoose\lib"
搜索"options = utils.options ({ ... versionKey: '__v'..."
和變化值"__v"
到false
。
這將更改所有帖子請求。(versionKey: '__v' => versionKey: false)
- 1. 從Endpoint API隱藏財產
- 2. 有沒有可能隱藏財產
- 3. 不可能從貓鼬物體獲得財產
- 4. SSRS隱藏財產造成行不應該被隱藏的問題
- 5. 財產繼承
- 6. INotifyPropertyChanged財產財產
- 7. 什麼是處理國家作爲財產對貓鼬(mongodb)的理想方式
- 8. 要財產,還是不要財產?
- 9. 從代碼隱藏訪問附屬財產
- 10. 如何隱藏財產繼承接口的類
- 11. 如何隱藏在派生類的基類的公共財產
- 12. 詠歎調隱藏的財產不在後裔工作
- 13. 當通過網絡服務暴露時隱藏公共財產
- 14. 財產
- 15. 與貓鼬
- 16. 貓鼬產品類別設計?
- 17. 貓鼬索引在生產代碼
- 18. 收藏夾嵌套在貓鼬
- 19. 差異要求( '貓鼬')。貓鼬和require( '貓鼬')
- 20. 在貓鼬
- 21. 在貓鼬
- 22. 獲取財產的財產
- 23. 如何貓鼬
- 24. 的MongoDB /貓鼬:貓鼬在模型
- 25. 如何貓鼬
- 26. 每財產授權
- 27. 通過Sharepoint 2010獲取財產隱私
- 28. 財產
- 29. 財產
- 30. 貓鼬:在陣列
禁用「__v」屬性可以安全嗎?如果我禁用它會導致未來的問題嗎? –
有沒有辦法將它從查詢返回的文檔中隱藏起來? – diosney