[英]How do I add new keys to a Mongoose Schema?
我最近開始為我的高級項目開發一個應用程序,該應用程序要求我使用某種類型的數據庫。 為此,我決定使用Mongoose,因為它是noSQL且較容易上手。
因此,快進,我遇到了一個問題,我無法弄清楚如何編輯一個已經存在的Schema並向其中添加新的鍵。
例如,我有一個表示代表以下內容的帖子(如Tweets或Facebook帖子):
我的代碼是:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Create Schema
const PostsSchema = new Schema({
Value: {
type: String,
required: true
},
User: {
type: Schema.Types.ObjectId,
ref:'users'
},
Date: {
type: Date,
default: Date.now
}
});
// Create collection and add schema
mongoose.model('posts', PostsSchema, 'posts');
我現在想要的是以某種方式訪問該架構,並使用類似於
PostsSchema.add({Private: { default: false}});
這意味着,現在數據庫中的架構將類似於:
{
"_id": {
"$oid": "1831g98af21n9s5u7s9ccchj5"
},
"Value": "Beautiful day outside, can't wait to go jogging!",
"User": {
"$oid": "9a79ab143lbk9lk55wq327oi3226m"
},
"Date": {
"$date": "2018-10-29T01:28:44.408Z"
},
"Private": "false"
"__v": 0
}
回到我的問題,有沒有辦法做到這一點? 或者,如果您有這些方法的文檔鏈接,我將不勝感激。 非常感謝!
只需使用default
將該字段添加到架構中即可:
const PostsSchema = new Schema({
Value: {
type: String,
required: true
},
User: {
type: Schema.Types.ObjectId,
ref:'users'
},
Date: {
type: Date,
default: Date.now
},
Private: {type: Boolean, default: 'false'}
});
由於您具有default
因此在添加private
字段之前,任何新記錄都會保存該舊記錄,並且還會保存舊模型的任何新實例 。
如果您確實需要更多dynamic
方法,通常的建議是將混合類型與所有附帶的優點和缺點一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.