2016-07-05 50 views
1

對於node.js和REST來說,我非常新。我的模型有以下架構:在node.js和mongodb中發佈一個字符串數組作爲一個參數

"properties": { 
    "name": { 
     "type": "string", 
     "description": "student name" 
    }, 
    "family": { 
     "type": "string", 
     "description": "family name" 
    }, 
    "subjects": { 
     "type": "array", 
     "description": "list of subjects taken", 
     "minItems": 1, 
     "items": { "type": "string" }, 
     "uniqueItems": true 
} 

前兩個屬性是直接的,因爲它們是字符串。但我很困惑如何發佈數組subjects。我已經編碼模型是這樣的:

var mongoose  = require('mongoose'); 
var Schema  = mongoose.Schema; 

var StudentSchema = new Schema({ 
    name: String, 
    family: String, 
    subject: [String] 
}); 

module.exports = mongoose.model('Student', StudentSchema); 

我不知道我是否正確與否。當我嘗試使用POSTMAN進行POST時,它會保留該記錄,但我不知道它是否僅以數組或字符串形式存儲。我如何驗證?如何添加一個驗證,該數組的長度必須大於1才能持久?

+0

使用shell或諸如robomongo之類的工具來查找數據庫中的數據 –

回答

1

首先驗證

var StudentSchema = new Schema({ 
    name: String, 
    family: String, 
    subject: { 
       type: [String], 
       validate: [arrayLengthGreaterOne, '{PATH} size has to be > 1'] 
      } 
}); 

function arrayLengthGreaterOne(val) { 
    return val.length > 1; 
} 

你是什麼意思一部分「不知道它是怎麼保存?」

我只是在mongo本身通過db.find()查找日期,但是你的語法看起來很好,所以我猜它已經正確存儲了。

+0

如何訪問此「{PATH}大小必須大於1」的消息?我想爲不同的錯誤提供不同的錯誤信息 – Vraj

相關問題